微服务开发手册

上传人:枫** 文档编号:469735926 上传时间:2023-07-21 格式:DOC 页数:13 大小:477KB
返回 下载 相关 举报
微服务开发手册_第1页
第1页 / 共13页
微服务开发手册_第2页
第2页 / 共13页
微服务开发手册_第3页
第3页 / 共13页
微服务开发手册_第4页
第4页 / 共13页
微服务开发手册_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《微服务开发手册》由会员分享,可在线阅读,更多相关《微服务开发手册(13页珍藏版)》请在金锄头文库上搜索。

1、精品文档微服务开发手册1开发说明所有服务均基于 spring boot 框架开发。 Spring boot 内嵌了 tomcat服务器,无需生成 war包,并简化了 maven 配置,能够让开发者快速入手spring 的开发。服务的接口定义需严格符合restful 规范。 rest 规范参考第 2 节 rest api 接口规范所有服务都需要在注册服务上注册,否则不能被其他服务所调用。同时平台也能够实时监测服务的状态,能够及时预警及调度资源。所有服务的配置信息统一保存于gitlab 上,并通过配置服务获取配置。 对数据库的操作统一采用和高级映射的优秀持久层框架。整合 mybatis 到项目中。

2、MyBatis 框架。 MyBatis 是个支持普通 SQL 查询,存储过程 Spring boot 也提供了 mybatis 的集成方案,可以很快捷地 包名约定:所有包均以 com.drht. 服务名 为父包名,如,后面再跟具体模块名称作为子包名。 所有项目基于 jdk1.8 来开发。项目的管理与构建采用 maven,代码统一托管于 gitlab 仓库。2 rest api接口规范spring boot 接口设计需符合restful 风格。在RESTful 架构中,每个网址代表一种资源( resource ),所以网址中不能有动词,只能有名词,而且所用的名词往往与数据库的表格名对应。而客户端

3、要执行某种类型的操作,需要根据http 的操作协议来决定。HTTP提供了常用的几种操作,如下表:动作说明GET( SELECT)从服务器取出资源(一项或多项)POST(CREATE)在服务器新建一个资源。PUT( UPDATE)在服务器更新资源(客户端提供改变后的完整资源)。PATCH( UPDATE)在服务器更新资源(客户端提供改变的属.精品文档性)。DELETE( DELETE)从服务器删除资源。对数据库的增删改查操作,应该严格遵守上面定义的五种HTTP 动作。对于更新动作,参数通过requestbody 来传递,格式为json。服务端返回数据格式也均为 json。服务端返回数据对象约定:

4、public class UnifyInfo private int code; /返回代码, 1 :成功, 0:失败private String message;/返回信息提示private String prompt;/private String path;/一般用于错误时的跳转路径private HashMap attribute;/一般用于查询时的返回数据内容Spring boot 会自动将符合 javabean 格式的对象转换为json 格式数据返回。示例:客户端请求请求参数服务端返回数据说明GET /userscode:1,message:查询成功查询所,prompt:,path

5、:,users:有用户GET /users/IDcode:1,message:查询成功查询指,prompt:,path:,users:定 ID的用户POST /usersusername:user2,ecode:0,message:创建用户失败创建一mail:666633433qq.,prompt:该用户 已经存 在个用户com,path:http:/localhost:8080/users,result:PUT /users/IDusername:user2,ecode:1,message:创建用户成功更新某mail:666633433qq.,prompt:,path:,result:用户信

6、com息PATCHusername:user2,ecode:1,message:更新成功更新某/users/IDmail:666633433qq.,prompt:,path:,result:用户指com定字段DELETEcode:1,message:删除成功删除指/users/ID,prompt:,path:,result:定用户而对于登录、登出操作,可以理解为登录是创建token, 登出是删除token, 所以可以用POST和 DELETE来定义这两种接口。刷新token 是更新操作所以用PUT。.精品文档3配置文件管理所有服务的配置文档均保存于gitlab 上,并通过配置服务config-

7、service 来获取配置。 每个服务在gitlab 均保存一份以服务id 命名的 properties 文件。以服务 spring-boot-demo为例,其在 gitlab 上的配置文件为spring-boot-demo.properties ,文件名对应于该服务的 bootstrap.properties 中配置的的 value 值。如果名称不一致,配置服务将拿不到正确的配置信息。在 spring-boot-demo.properties中通常配置该服务的启动端口、数据库连接参数等信息。 当该文件有更新并 push 到 gitlab 后,配置服务会自动通知客户端服务更新配置信息。关键配置

8、:在主程序中需要访问配置文件的类名上加上注解:RefreshScope,如果没有该注解,配置服务将不能主动通知客户端服务更新配置。如下:RefreshScopeRestControllerpublic class MessageRestController Value($message:Hello default)private String message;RequestMapping(/message)String getMessage() return this.message;当 spring-boot-demo.properties 文件里的 message 变量发生变化后,请求 /

9、message 时返回的message 值将是更新后的message 内容。pom.xml 关键依赖项:spring-cloud-config-clientspring-boot-starter-actuator同时需要引入spring cloud的依赖项.精品文档spring-cloud-dependenciesCamden.SR5pomimport在 src/main/resouce目录建立bootstrap.properties文件,设置配置服务url与 serviceid 。bootstrap.properties文件内容:#配置服务地址#service name注:不能在applic

10、ation.properties设置配置服务的url,因为 application.properties的启动优先级最低,不能在程序启动之前读取到配置服务url,从而不能加载配置服务上相应的配置。4服务注册register-service 提供服务的注册与发现。所有的服务都需要注册到register-service 中,否则不能够被其他服务发现与调用,比如路由服务。关键配置pom.xml 关键依赖项:groupIdspring-cloud-starter-eureka-server同时需要引入spring cloud的依赖项.精品文档spring-cloud-dependenciesCamden.SR5pomimport/dependenc

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 幼儿/小学教育 > 幼儿教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号