概述
Power.MicroForm 微服务主体框架是基于 微软新推出的框架.net Core开发的。
吸取了大量M3系统
安装步骤示意图
安装环境包
Windows环境下安装部署
如果安装包无法安装,或者安装后 dotnet 指令无反应。 则请先打 Windows升级补丁。
Windows 2008 Server/2012Server都需要先升级补丁到最新,再安装三个环境包。
在服务器上逐次安装<br /> [aspnetcore-runtime-2.2.7-win-x64.exe](https://pan.baidu.com/s/1nO5BJDRdHoaWbZmKM99zwA) 提取码:dpph<br /> [ dotnet-runtime-2.2.7-win-x64.exe](https://pan.baidu.com/s/1KH3zXMvGC1E5uI5aWsE7eg) 提取码:tjn9<br /> [dotnet-hosting-2.2.7-win.exe](https://pan.baidu.com/s/19bXXoCPtSx5fbBfPT6ECnQ) 提取码:0ji3<br /> 这三个环境包。安装完毕后, 开始 ->运行 -> cmd打开dos窗体。<br /> 然后输入 dotnet --version ,如果出现如下图所示,说明安装成功。
如果提示:
则请下载 Visual C++ Redistributable for Visual Studio 2015
https://www.microsoft.com/zh-cn/download/confirmation.aspx?id=48145 安装即可。
Linux系统下安装环境
和Windows类似, 只是Linux下没有IIS的概念。
有关如何部署的详细操作,可以参阅视频:
https://www.bilibili.com/video/BV1D4411c7s8?p=12
网文:https://blog.csdn.net/wuyu0920/article/details/81078092
服务配置管理
服务环境
名称 | ||
---|---|---|
部署模式 | 后台:微服务API。 前台:静态http网站。 |
前后端分离模式 |
操作系统 | Windows /Linux 等 | 支持多操作系统 |
开发语言: | 前端:html+miniUI 后端: .Net Core。 |
微服务体系,对开发语言并无强制要求。只要符合交互协议即可。 |
常用数据库 | Sql Server/Oracle/mysql/sqlite/达梦 | |
支持硬件 | x86/arm/龙芯 | 硬件上社会的主流芯片都可以部署 |
服务部署的三种方式
微服务部署视频
服务配置管理职责
服务配置管理,功能类似于 m3的 Power.ConfigEdit.exe。不过是Web版的。
- 告诉系统总共有多少微服务? IP和端口分别是什么。
- 哪个微服务是网关。 负责协调前后端交互的。
- 总共有多少种数据库链接配置串。
- 给每个微服务分配所需的连接串。
- 配置微服务运行场景、 Token生成所需参数、 Redis的端口/密码、 可信任IP白名单。
- 配置部署
Power.ConfigEdit.Web 网站 和M3里的 Power.ConfigEdit.exe 工具类似。
之所以不沿用exe类工具,主要是因为
.Net Core开发的微服务,可以在windows部署,也能在Linux下部署。 但 exe文件无法在linux下运行。
因此,我们提供了Web版的 网站配置工具。
约定: 扩展名是 Web的压缩包,一般都含有网页。<br /> 扩展名是API的压缩包,一般不含网页,url返回信息都是Json数据。
a. 解压缩 Power.ConfigEdit.Web.zip (提取码:anat) 文件。
b. cmd -> 进入解压目录。
c. dotnet Power.ConfigEdit.Web.dll [端口号,不填端口则默认 19980]。
网站启动后,浏览器中访问: 127.0.0.1:19980 即可打开对应配置网站。
- 环境设置
微服务分为三种:
名称 | 标注色 | 特点 | |
---|---|---|---|
网关微服务 | 粗体蓝色字体 | 只能定义一项 | 需要定义IP地址 http端口 rpc端口 |
普通微服务 | 蓝色字体 | 无限制 | 需要定义IP地址 http端口 rpc端口 |
子服务 | 黑色字体 | 只能依附于自己的主服务 借用主服务的端口 |
不用定义端口 |
因为一个中大型环境,服务是比较多的。 我们担心对业务功能拆分太细,从M3的庞然大物这个极端,又走到了另一个极端。
因此提供了子服务的概念。
这里强调下, 子服务和主服务之间并不是父子关系。 子服务只是为了方便部署,借用了主服务的IP和端口。 两者没有从属关系。
子服务也能很轻易的切换成主服务。
子服务寄生在主服务上, 共用一个端口。
子服务是寄生关系,不是依赖关系。 两者毫无引用概念。 删掉或移走子服务,主服务可以毫无影响。反之亦然。
子服务一般用于那些比较稳定的、难得改动的服务。比如登录。
另外,子服务很容易切换成主服务。
微服务定义项, 也是对 [概述 三. 微服务体系扩展示意图] 最直接的描述。
微服务体系很类似现实世界的组织架构。 比如结合上图:
Power.Gateway 是网关服务。必须定义。 唯一。 有独立端口。 【首都】
Power.Login是子服务, 本例中我们把其挂在网关服务下。 【下辖区县1】
Power.Config 是子服务,本例中我们把其挂在网关服务下。 【下辖区县2】
Power.ConfigEdit.Web 是个独立网站, 唯一,有独立端口。 【天安门】
Power.ProjectsTrans 是数据迁移示例API。可以唯一,有独立端口。 也能降级为子服务,附属于某个主服务。 【省会】
由此可见,是否有独立端口,是分水岭。
在微服务环境下, 每个微服务都是一个独立的世界。
每个微服务也能拥有多个数据库连接串, 其中 ConnName 约定为默认串。
经常有这样的现象, 20个微服务,其实用到的数据库连接串可能只有3-5个。
那么我们就先定义这几个连接串。
然后把这些连接串,分配到相应的服务上即可。 尽量减少重复操作。
支持的数据库种类
微服务平台对如下数据库提供支持。
数据库 | 简述 | 普华应用度 |
---|---|---|
Sql Server | 微软提供的中型数据库 | 大量项目都基于此数据库 |
Oracle | 全球最大的数据库 | 部分项目基于此数据库 |
MySql | 免费开源数据库,多应用于互联网行业 | 未实战 |
达梦DaMeng | 国产最知名的数据库 | 未实战,此数据库虽是国人开发,但和Oracle高度兼容。按理可以视为国产版Oracle。 |
Sqlite | 单机版微型数据库 | 小型项目或演示项目中经常使用。一般存储少量配置信息。便于部署和携带。 |