你在寻找一款兼具学习辅助和快速搭建项目架构功能的微服务项目吗?jboot-admin可能正是你所需要的。这款产品依托于jboot技术平台,具备众多显著特色和实用功能。接下来,我们就来逐一分析它的亮点。
项目概述
jboot-admin项目主要运用微服务技术进行快速开发与更新,建立在jboot技术体系之上。目前,该系统融合了后台管理以及微信公众号两大核心功能。面向未来,我们计划引入电商领域的相关业务,如秒杀、商品、订单、app和小程序等模块。这些新增功能将使项目适用范围更广,更能满足各类开发者的多样化需求。
本工程选用maven作为构建工具,并采用了多模块的架构设计。在操作过程中,请确保使用jdk8或更高版本。此外,我们选择了mysql作为数据库。众多开发者认为,这样的配置能更有效地与个人现有的开发环境相匹配。
1、2018-01-18: 添加微信公众号模块jboot-wechat,微信公众号demo
2、2018-01-23: 添加B2C服务端模块jboot-b2c-service,b2c商品管理demo
3、2018-01-25: 添加B2C客户端模块,初始化上传,作为商城秒杀demo模块
4、2018-02-01: B2C客户端添加 JWT 前后分离验证 demo
微服务模块结构
1、建立后台管理数据库:doc/sql/jboot-admin.sql,数据库名:jboot-admin,用户名密码root/root
2、建立B2C数据库:doc/sql/jboot-b2c.sql,数据库名:jboot-b2c,用户名密码root/root
3、启动consul或zookeeper,目前配置文件默认为consul+motan,如需替换dubbo + zookeeper可参考下面配置进行更改
4、启动redis,需要配置密码为 123456,可在配置文件进行修改
5、如需更改db/redis/consul/zookeeper等配置请更新客户端配置文件:jboot-admin/resources/jboot.properties
6、如需更改db/redis/consul/zookeeper数据库配置请更新服务端配置文件:jboot-admin-service/jboot-admin-service-provider/resources/jboot.properties
7、启动客户端:客户端启动入口:io.jboot.admin.Application
8、启动服务端:服务端启动入口:io.jboot.admin.service.provider.app.Application
9、启动B2C服务端:服务端启动入口:io.jboot.b2c.service.provider.app.Application
10、浏览器访问:localhost:8888,默认用户名密码:admin/123123
附加:
监控相关功能需要安装对应服务才可正常使用
注册中心监控需要安装:consul或zookeeper
服务调用监控需要安装:hystrix-dashboard
链路跟踪监控需要安装:zipkin-server
服务治理需要安装:motan-manager
这些都可以在网上下载或者自己编译,当然也可以加群下载
微服务模块由五个层级构成,分别是API层、实体层、调用层、实现层和基础层。在这些层级里,功能相当多样,涵盖了代码自动生成、用户权限配置、数据字典管理、日志处理、服务治理、服务监控以及链路追踪等方面。
手动编写代码挺费时费力的。但借助jboot-admin的代码生成工具,可以迅速建立代码框架。此外,服务监控能够即时展示服务运行状况,遇到问题也能迅速处理。
#use motan + consul
jboot.rpc.type = motan
jboot.rpc.registryType = consul
jboot.rpc.registryAddress = 127.0.0.1:8500
开发理念与特性
#use dubbo + zookeeper
jboot.rpc.type = dubbo
jboot.rpc.registryType = zookeeper
jboot.rpc.registryAddress = 127.0.0.1:2181
jboot-admin的设计理念强调简洁与高效。这个框架拥有众多功能,等待开发者一一发掘。它对jboot的代码生成功能进行了集成,使用起来更加便捷。例如,只需配置好与代码生成相关的文件,包括数据库和生成包的设置,然后运行代码生成类即可。
开发者们提到,这种封装简化了多个复杂的步骤,让编程过程变得更为简便。此外,这个框架不仅具备自动生成代码的功能,还包含了许多尚未被充分挖掘的优势。随着你对其使用程度的加深,这些优势将逐步显现。
配置文件位置:
各模块 resources/jboot.properties
配置说明
代码生成入口:
service interface api生成:io.jboot.admin.service.api.ge.GenCode
model 实体生成:io.jboot.admin.service.entity.GenCode
service impl 实现层生成:io.jboot.admin.service.provider.ge.GenCode
在配置环节,用户可以对数据库、consul、zookeeper、缓存和消息队列等参数进行修改。客户端的配置文件位于jboot-admin目录下的resources子目录,具体是jboot.properties文件。至于服务端,其配置文件则放在jboot-admin-service/jboot-admin-service-provider/resources路径下的jboot.properties文件内。
同时,我们准备了motan和consul的配置模板,还有dubbo和zookeeper的配置模板。这些模板就像范例,即便不太懂配置的人,按照这些范例操作,也能迅速完成配置。
#---------------------------------------------------------------------------------#
# Generator Config
# jboot.admin.serviceimpl.ge.entity.package: the entity package;
# jboot.admin.serviceimpl.ge.servicepackage:service 接口 package
# jboot.admin.serviceimpl.ge.serviceimplpackage:service 实现类 package
# jboot.admin.serviceimpl.ge.localdev.removedtablenameprefixes: 需要移除表名前缀只留下后部分,多个逗号隔开
# jboot.admin.serviceimpl.ge.localdev.excludedtable: 生成时不包含表名列表,多个逗号隔开
# jboot.admin.serviceimpl.ge.excludedtableprefixes: 生成时不包含表前缀,多个逗号隔开
#---------------------------------------------------------------------------------#
jboot.admin.serviceimpl.ge.modelpackage=io.jboot.admin.service.entity.model
jboot.admin.serviceimpl.ge.servicepackage=io.jboot.admin.service.api
jboot.admin.serviceimpl.ge.serviceimplpackage=io.jboot.admin.service.provider
jboot.admin.serviceimpl.ge.removedtablenameprefixes=sys_
jboot.admin.serviceimpl.ge.excludedtable=
jboot.admin.serviceimpl.ge.excludedtableprefixes=temp_,v_
系统管理模块
资源管理大体上包括菜单和功能两个核心部分。菜单位于页面左边,布局类似于一棵树形结构;而功能则是通过页面上的按钮或超链接等具体方式呈现。只有那些经过配置和授权的资源,用户才有权限访问。至于用户管理,则是用来设定系统的登录用户,并为他们指定相应的角色。
系统内设置角色权限时,必须清晰界定各角色能访问的资源权限。这有助于使系统管理更有条理,不同权限级别的用户能够查阅各自权限范围内的资料,从而有效维护了系统的安全及数据保密性。
监控与跟踪功能
注册中心页面受监控中心管理,确保我们能实时了解系统服务的注册动态。hystrix承担着监控服务调用的任务,它能够跟踪调用流程,并在发现异常时立即通知我们。
我们决定使用zipkin来跟踪服务流程,这有助于我们清晰了解服务间的联系,并能迅速定位问题。同时,我们还借助motan-manager来管理服务,保证服务的高效运作。凭借这些监控与追踪工具,我们保障了系统的稳定运作。
阅读完这篇文章,你印象最深刻的是jboot-admin的哪个功能?欢迎在评论区告诉我们你的想法。同时,别忘了给这篇文章点个赞,并把它分享出去。
发表回复