Java Chassis 3最佳实践(一):Fence项目介绍

举报
liubao68 发表于 2024/08/22 11:07:38 2024/08/22
【摘要】 本文是Java Chassis 3最佳实践系列文章之一,主要介绍脚手架工程Fence的的基本组成,如何下载、安装和运行。

Fence项目介绍

ServiceComb Fence[^1] 是包含Java Chassis 3最佳实践的应用开发脚手架,它可以帮助开发者快速构建包含微服务后端、微服务前端和基础原子服务的项目工程。

基于Fence,可以快速构建一个韧性、安全和敏捷的微服务项目工程。Fence的核心设计包括韧性架构、安全认证、可观测性、过载防护等方面,它主要由如下几个微服务组成:

  • edge-service: 微服务网关。微服务网关负责接收用户的请求,并将请求转发给对应的微服务前端和微服务后端进行处理。微服务网关还负责认证鉴权、过载防护等方面的系统功能。
  • authentication-server: 认证服务。认证服务提供基于Oauth2的认证能力,实现了基础的用户、角色管理,认证和授权等功能。
  • resource-server: 资源服务。资源服务是一个示例项目,用户新开发的服务都属于资源服务,这个服务可以作为新增服务的模板。 资源服务实现了一些基础的鉴权功能,提供基于Yaml配置和Java Annotation声明的权限管理机制。
  • admin-service: 微服务管理服务。微服务管理服务提供微服务管理和系统运维功能。包括管理和查看服务列表、管理和查看服务配置、系统问题分析和定位能力。
  • admin-website: 微服务管理服务的前端。这是一个基于OpenTiny[^2] 开发的静态页面服务,实现微服务管理服务的Web前端。 它可以作为用户新增前端的模板,提供了基础的Web前端开发框架,包括菜单、导航等方便阅读和扩展的代码框架。

Fence还依赖中间件服务Zookeeper和数据库MySQL。

Fence项目遵循约定优于配置原则,定义了日志配置、Web配置、路由配置、代码结构等相关规范,以更加简洁的实现可观测性、过载防护等功能。

下载和运行Fence项目

在下载和运行Fence项目前,假设您已经体验过Java Chassis的快速入门,并已经安装和设置好JDK 17、Maven、Git、IDEA等开发环境。

  • 下载和安装Zookeeper[^3]
    Fence 使用Zookeeper作为注册中心和配置中心,可以参考官网链接下载和安装。

  • 下载和安装MySQL[^4]
    Fence 使用MySQL作为数据库,可以参考官网链接下载和安装。

  • 下载和安装OpenTiny(可选)
    Fence前端框架使用OpenTiny要修改编译源码需要下载和安装OpenTiny相关开发环境。详细可以参考Open Tiny Pro的官网说明[^5]。

  • 下载Fence代码并编译

    git clone https://github.com/apache/servicecomb-fence.git
    cd servicecomb-fence
    mvn clean install
    
  • 初始化数据库
    authentication-server依赖数据库,找到 src/resource/sql/user.sql,在数据库执行该初始化脚本。

  • 启动和运行
    可以使用 build_and_run.bat 脚本启动项目,也可以使用 IDEA 打开 Fence工程,启动Fence的每个微服务。

  • 进入Fence管理界面。
    输入:http://localhost:9090/ui/admin/ , 登录系统后可以看到如下界面

后续

在接下来的内容里面,我们将逐步从韧性架构设计、安全认证设计、可观测性设计、过载防护设计、契约优先开发、项目脚手架等方面,专题介绍Fence项目。

[^1]: ServiceComb Fence 项目链接 https://github.com/apache/servicecomb-fence

[^2]: OpenTiny 项目链接 https://opentiny.design/

[^3]: Zookeeper 项目链接 https://zookeeper.apache.org/releases.html

[^4]: MySQL 项目链接 https://www.mysql.com/downloads/

[^5]: OpenTiny Pro及其脚手架链接 https://opentiny.design/vue-pro/docs/start

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。