微服务快速开发

历时三年的企业实践证明,框架已经完美支持企业微服务开发,因此不再进行结构型改动。
老风格的oriole不再支持,请按照文档说明使用o xxx,监控使用xxx_service.rpc()
为了提高程序的运行速度,新版使用GO语言和C语言编写框架中与微服务不直接相关的代码。

【中文使用说明书】
【英文使用说明书】

oriole之禅:软件之道,唯快不破

准备工作

  1. 安装软件

具体安装方法取决于你的系统,都比较简单。
python3和libpython3.6在ubuntu18.04以上版本中已经包含。
注意:这些软件缺一不可

  • mongodb
  • mysql
  • rabbitmq
  • redis
  • python3
  • libpython3.6
  1. 安装oriole-service
1
pip install oriole-service

services.cfg

1
2
3
4
AMQP_URI:      pyamqp://test:test@127.0.0.1
database: mysql://test:test@127.0.0.1/test?charset=utf8
test_database: mysql://test:test@127.0.0.1/test?charset=utf8
datasets: redis://127.0.0.1

创建orm

dao/__init__.py

1
2
3
4
5
6
from oriole_service.db import *

class Eric(Base):
__tablename__ = 'eric_table'
uid = Column(types.Integer(), primary_key=True, autoincrement=True)
param = Column(types.Unicode(255), unique=None, default='')

编写服务

services/log.py

1
2
3
4
5
6
7
8
9
10
from oriole_service.app import *

class LogService(App):
name = service_name(__file__)
ver = "1.0.0"

@rpc
def add(self, params={"param": "eric"}):
self.log.debug("# %s(%s)" % ("add", params))
return self._o(params)

运行服务

使用o r

1
o r log

运行监控

进入后,使用log_service.add()

1
o s

文档

1
o d

创建镜像

如果没有docker经验,跳过本节。

1
o b log

声明

本软件可以自由使用,但是作者不对使用本软件出现的任何损失承担责任。
如有问题,请确保使用的是最新版本
此处提交BUG,不熟悉github的人员务必提前学会,作者不对框架之外的问题提供帮助。

微服务环境

完整的软件列表,用于故障检查和恢复。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
alabaster==0.7.12
amqp==2.4.2
Babel==2.5.3
certifi==2019.3.9
chardet==3.0.4
dnspython==1.16.0
docutils==0.14
eventlet==0.24.1
greenlet==0.4.15
idna==2.8
imagesize==1.1.0
importlib-metadata==0.9
Jinja2==2.10
kombu==4.5.0
MarkupSafe==1.1.1
mock==2.0.0
mockredispy==2.9.3
mogo==0.4.0
mongomock==3.8.0
monotonic==1.5
mysqlclient==1.3.12
nameko==2.11.0
oriole==16.1.0
oriole-service==26.2.0
packaging==19.0
path.py==11.5.2
pbr==5.1.3
pkg-resources==0.0.0
py==1.8.0
pyetcd==1.8.0
Pygments==2.3.1
pymongo==3.7.2
PyMySQL==0.7.11
pyparsing==2.4.0
pytest==3.2.3
pytz==2019.1
PyYAML==5.1
redis==2.10.6
requests==2.21.0
sentinels==1.0.0
six==1.12.0
snowballstemmer==1.2.1
Sphinx==1.7.2
sphinxcontrib-websupport==1.1.0
SQLAlchemy==1.2.14
urllib3==1.24.1
vine==1.3.0
Werkzeug==0.15.2
wrapt==1.11.1
zipp==0.3.3

深入研究进展

为学之道,在日积月累
冰冻三尺,岂一日之寒

  • K8S自定义扩展原理与编写
  • 系统原型技术设计与编写
  • 数据分片技术方案与实现
  • SQLALCHEMY代码跟踪
  • ANGULARJS代码阅读

深入研究预定

为学之道,在日积月累
冰冻三尺,岂一日之寒

  • K8S自定义扩展原理与编写
  • 系统原型技术设计与编写
  • 数据分片技术方案与实现
  • SQLALCHEMY代码跟踪
  • ANGULARJS代码阅读