(servicecomb-fence) branch master updated: 修改timestamp参数显示为时间格式
This is an automated email from the ASF dual-hosted git repository. liubao pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-fence.git The following commit(s) were added to refs/heads/master by this push: new c7bc88e 修改timestamp参数显示为时间格式 c7bc88e is described below commit c7bc88e1cd05c24b2594966a9e00d61173f5f1f0 Author: tianxin AuthorDate: Thu May 30 01:10:46 2024 -0700 修改timestamp参数显示为时间格式 --- .../views/board/home/components/call-chain-list.vue | 20 +++- .../web/src/views/board/home/components/mock.json| 2 +- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/admin-website/src/main/web/src/views/board/home/components/call-chain-list.vue b/admin-website/src/main/web/src/views/board/home/components/call-chain-list.vue index 8a56504..29d3da5 100644 --- a/admin-website/src/main/web/src/views/board/home/components/call-chain-list.vue +++ b/admin-website/src/main/web/src/views/board/home/components/call-chain-list.vue @@ -17,7 +17,13 @@ - + + + +{{ timesHandle(data.row.timestamp) }} + + + @@ -58,6 +64,18 @@ const toolbarButtonClickEvent = ({ code, $grid }) => { default: break; } } +const timesHandle = (times:number) => { + const date = new Date(times/1000) + + const year = date.getFullYear(); + const month = String(date.getMonth() +1) + const day = String(date.getDate()) + const hours = String(date.getHours()) + const minutes = String(date.getMinutes()) + const seconds = String(date.getSeconds()) + + return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}` +}
(servicecomb-fence) branch master updated: change source folder
This is an automated email from the ASF dual-hosted git repository. liubao pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-fence.git The following commit(s) were added to refs/heads/master by this push: new 3aa5aba change source folder 3aa5aba is described below commit 3aa5aba9c14767039f4b92761105035a021c947e Author: liubao AuthorDate: Wed May 29 17:10:37 2024 +0800 change source folder --- .gitignore| 5 + .../src/main/{resources/static/admin => web}/.env | 0 .../src/main/{resources/static/admin => web}/.env.pages | 0 .../main/{resources/static/admin => web}/.eslintignore| 0 .../src/main/{resources/static/admin => web}/.eslintrc.js | 0 .../src/main/{resources/static/admin => web}/.gitignore | 0 .../main/{resources/static/admin => web}/.prettierrc.js | 0 .../main/{resources/static/admin => web}/.stylelintrc.js | 0 .../src/main/{resources/static/admin => web}/README.md| 0 .../main/{resources/static/admin => web}/babel.config.js | 0 .../{resources/static/admin => web}/commitlint.config.js | 0 .../static/admin => web}/config/plugin/arcoResolver.ts| 0 .../static/admin => web}/config/plugin/compress.ts| 0 .../static/admin => web}/config/plugin/imagemin.ts| 0 .../static/admin => web}/config/plugin/visualizer.ts | 0 .../{resources/static/admin => web}/config/utils/index.ts | 0 .../static/admin => web}/config/vite.config.base.ts | 0 .../static/admin => web}/config/vite.config.dev.ts| 0 .../admin => web}/config/vite.config.preview.base.ts | 0 .../admin => web}/config/vite.config.preview.dev.ts | 0 .../admin => web}/config/vite.config.preview.prod.ts | 0 .../static/admin => web}/config/vite.config.prod.ts | 0 .../src/main/{resources/static/admin => web}/favicon.ico | Bin .../main/{resources/static/admin => web}/hwc-exports.json | 0 .../src/main/{resources/static/admin => web}/index.html | 0 .../{resources/static/admin => web}/package-lock.json | 0 .../src/main/{resources/static/admin => web}/package.json | 0 .../{resources/static/admin => web}/public/favicon.png| Bin .../src/main/{resources/static/admin => web}/src/App.vue | 0 .../main/{resources/static/admin => web}/src/api/board.ts | 0 .../main/{resources/static/admin => web}/src/api/user.ts | 0 .../static/admin => web}/src/assets/images/avatar.png | Bin admin-website/src/main/web/src/assets/images/search.png | Bin 0 -> 649 bytes .../static/admin => web}/src/assets/style/breakpoint.less | 0 .../static/admin => web}/src/assets/style/exception.less | 0 .../static/admin => web}/src/assets/style/global.less | 0 .../static/admin => web}/src/assets/style/menu.less | 0 .../admin => web}/src/components/breadcrumb/index.vue | 0 .../static/admin => web}/src/components/index.ts | 0 .../static/admin => web}/src/components/menu/index.vue| 0 .../static/admin => web}/src/components/navbar/index.vue | 0 .../src/main/{resources/static/admin => web}/src/env.d.ts | 0 .../{resources/static/admin => web}/src/hooks/loading.ts | 0 .../{resources/static/admin => web}/src/hooks/user.ts | 0 .../static/admin => web}/src/layout/default-layout.vue| 0 .../static/admin => web}/src/layout/page-layout.vue | 0 .../src/main/{resources/static/admin => web}/src/main.ts | 0 .../{resources/static/admin => web}/src/router/index.ts | 0 .../static/admin => web}/src/router/routes/index.ts | 0 .../admin => web}/src/router/routes/modules/kanban.ts | 0 .../static/admin => web}/src/router/typings.d.ts | 0 .../{resources/static/admin => web}/src/store/index.ts| 0 .../admin => web}/src/store/modules/tab-bar/index.ts | 0 .../admin => web}/src/store/modules/tab-bar/types.ts | 0 .../static/admin => web}/src/store/modules/user/index.ts | 0 .../static/admin => web}/src/store/modules/user/types.ts | 0 .../{resources/static/admin => web}/src/types/mock.ts | 0 .../{resources/static/admin => web}/src/types/roleType.ts | 0 .../src/views/board/home/components/call-chain-list.vue | 0 .../src/views/board/home/components/main.vue | 0 .../src/views/board/home/components/mock.json | 0 .../static/admin => web}/src/views/board/home/index.vue | 0 .../static/admin => web}/src/views/board/index.vue| 0 .../static/admin => web}/src/views/board/list/index.vue | 0 .../src/views/login/components/login-form.vue | 0 .../src/views/login/components/login-mail.vue | 0 .../static/admin => web}/src/views/login/i
(servicecomb-fence) branch master updated: 调用链展示组件语法切换v3
This is an automated email from the ASF dual-hosted git repository. liubao pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-fence.git The following commit(s) were added to refs/heads/master by this push: new 3b47ba9 调用链展示组件语法切换v3 3b47ba9 is described below commit 3b47ba9adf3bccd4e7f965b960597992cb27f3e5 Author: tianxin AuthorDate: Wed May 29 02:03:13 2024 -0700 调用链展示组件语法切换v3 --- .../static/admin/src/components/navbar/index.vue | 2 +- .../board/home/components/call-chain-list.vue | 49 +- 2 files changed, 20 insertions(+), 31 deletions(-) diff --git a/admin-website/src/main/resources/static/admin/src/components/navbar/index.vue b/admin-website/src/main/resources/static/admin/src/components/navbar/index.vue index c8d5d79..e6f65d8 100644 --- a/admin-website/src/main/resources/static/admin/src/components/navbar/index.vue +++ b/admin-website/src/main/resources/static/admin/src/components/navbar/index.vue @@ -24,7 +24,7 @@ - import { UserHead as TinyUserHead, Modal } from '@opentiny/vue'; + import { UserHead as TinyUserHead } from '@opentiny/vue'; import { IconCheckOut, } from '@opentiny/vue-icon'; diff --git a/admin-website/src/main/resources/static/admin/src/views/board/home/components/call-chain-list.vue b/admin-website/src/main/resources/static/admin/src/views/board/home/components/call-chain-list.vue index f5a6e25..8a56504 100644 --- a/admin-website/src/main/resources/static/admin/src/views/board/home/components/call-chain-list.vue +++ b/admin-website/src/main/resources/static/admin/src/views/board/home/components/call-chain-list.vue @@ -1,7 +1,7 @@ <template> - <tiny-grid resizable seq-serial :data="mockData" @toolbar-button-click="toolbarButtonClickEvent"> + <tiny-grid resizable seq-serial :data="state.mockData" @toolbar-button-click="toolbarButtonClickEvent"> <template #toolbar> - <tiny-grid-toolbar :buttons="toolbarButtons"> </tiny-grid-toolbar> + <tiny-grid-toolbar :buttons="state.toolbarButtons"> </tiny-grid-toolbar> </template> <tiny-grid-column type="index" width="60"></tiny-grid-column> <tiny-grid-column width="60"></tiny-grid-column> @@ -15,7 +15,6 @@ <div> {{ data.row.tags['http.status_code'] }} </div> - </template> </tiny-grid-column> <tiny-grid-column field="timestamp" title="timestamp"></tiny-grid-column> @@ -36,37 +35,27 @@ </tiny-grid> </template> -<script lang="jsx"> -import { Grid, GridColumn, GridToolbar } from '@opentiny/vue' +<script lang="ts" setup> +import { reactive } from 'vue'; +import { Grid as TinyGrid, GridColumn as TinyGridColumn, GridToolbar as TinyGridToolbar } from '@opentiny/vue' import mock from './mock.json' -export default { - components: { -TinyGrid: Grid, -TinyGridColumn: GridColumn, -TinyGridToolbar: GridToolbar - }, - data() { -return { - toolbarButtons: [ -{ - code: 'clearRowExpand', - name: '手动清空展开行状态' -} - ], - mockData: mock, +const state = reactive({ + mockData: mock, + toolbarButtons: [ +{ + code: 'clearRowExpand', + name: '手动清空展开行状态' } - }, - methods: { -toolbarButtonClickEvent({ code, $grid }) { - // eslint-disable-next-line default-case - switch (code) { -case 'clearRowExpand': { - $grid.clearRowExpand() - break -} - } + ], +}) +const toolbarButtonClickEvent = ({ code, $grid }) => { + switch (code) { +case 'clearRowExpand': { + $grid.clearRowExpand() + break } +default: break; } }
(servicecomb-fence) branch master updated: 新增调用链列表展示
This is an automated email from the ASF dual-hosted git repository. liubao pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-fence.git The following commit(s) were added to refs/heads/master by this push: new 21b2185 新增调用链列表展示 21b2185 is described below commit 21b218568db35d56b1fc43ca4be88029290aacf5 Author: tianxin AuthorDate: Wed May 29 01:38:34 2024 -0700 新增调用链列表展示 --- .../board/home/components/call-chain-list.vue | 175 -- .../admin/src/views/board/home/components/main.vue | 2 +- .../src/views/board/home/components/mock.json | 252 + 3 files changed, 292 insertions(+), 137 deletions(-) diff --git a/admin-website/src/main/resources/static/admin/src/views/board/home/components/call-chain-list.vue b/admin-website/src/main/resources/static/admin/src/views/board/home/components/call-chain-list.vue index 7e6ac14..f5a6e25 100644 --- a/admin-website/src/main/resources/static/admin/src/views/board/home/components/call-chain-list.vue +++ b/admin-website/src/main/resources/static/admin/src/views/board/home/components/call-chain-list.vue @@ -1,59 +1,44 @@ - + - - - - - - - - + + + + + + + + + +{{ data.row.tags['http.status_code'] }} + + + + + - - - - + + + + + + + + 查看日志|查看Metrics + + + import { Grid, GridColumn, GridToolbar } from '@opentiny/vue' - -const expandTableData = [ - { -id: '1', -name: 'GFD科技YX公司', -area: '华东区', -address: '福州', -introduction: '公司技术和研发实力雄厚,是国家863项目的参与者,并被政府认定为“高新技术企业”。' - }, - { -id: '2', -name: 'WWW科技YX公司', -area: '华南区', -address: '深圳福田区', -introduction: '公司技术和研发实力雄厚,是国家863项目的参与者,并被政府认定为“高新技术企业”。' - }, - { -id: '3', -name: 'RFV有限责任公司', -area: '华南区', -address: '中山市', -introduction: '公司技术和研发实力雄厚,是国家863项目的参与者,并被政府认定为“高新技术企业”。' - } -] +import mock from './mock.json' export default { components: { @@ -69,99 +54,7 @@ export default { name: '手动清空展开行状态' } ], - tableData: [ -{ - id: '1', - name: 'GFD科技YX公司', - userId: 421000103624183, - area: '华东区', - province: '福建省', - city: '福州', - contact: '许生', - telephone: '1234567890', - address: '福州', - ipaddress: '192.168.111.111', - introduction: '公司技术和研发实力雄厚,是国家863项目的参与者,并被政府认定为“高新技术企业”。', - employees: 800, - createdDate: '2014-04-30 00:56:00', - boole: false, - assets: '100', - rate: 0.9 -}, -{ - id: '2', - name: 'WWW科技YX公司', - userId: 421000103624183, - area: '华南区', - province: '广东省', - city: '深圳', - contact: '朱生', - telephone: '1234567890', - address: '深圳福田区', - ipaddress: '192.168.111.1', - introduction: '公司技术和研发实力雄厚,是国家863项目的参与者,并被政府认定为“高新技术企业”。', - employees: 300, - createdDate: '2016-07-08 12:36:22', - boole: true, - assets: '150', - rate: 0.7 -}, -{ - id: '3', - name: 'RFV有限责任公司', - userId: 441047913162396, - area: '华南区', - province: '广东省', - city: '中山', - contact: '秦生', - telephone: '1234567890', - address: '中山市', - ipaddress: '192.168.111.120', - introduction: '公司技术和研发实力雄厚,是国家863项目的参与者,并被政府认定为“高新技术企业”。', - employees: 1300, - createdDate: '2014-02-14 14:14:14', - boole: false, - assets: '150', - rate: 0.6 -}, -{ - id: '4', - name: 'TGB科技YX公司', - userId: 702973890055088, - area: '华东区', - province: '福建省', - city: '龙岩', - contact: '周生', - telephone: '1234567890', - address: '龙岩', - ipaddress: '192.168.11.111', - introduction: '公司技术和研发实力雄厚,是国家863项目的参与者,并被政府认定为“高新技术企业”。', - employees: 360, - createdDate: '2013-01-13 13:13:13', - boole: true, - assets: '120', - rate: 0.5 -}, -{ - id: '5', - name: 'YHN科技YX公司', - userId: 702973890055088, - area: '华南区', - province: '广东省', - city: '韶关', - contact: '郑生', - telephone: '1234567890', - address: '韶关', - ipaddress: '192.168.101.111', - introduction: '公司技术和研发实力雄厚,是国家863项目的参与者,并被政府认定为“高新技术企业”。', - employees: 810, - createdDate: '2012-12-12 12:12:12', - boole: true, - assets
(servicecomb-fence) branch master updated: upgrade mysql connector
This is an automated email from the ASF dual-hosted git repository. liubao pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-fence.git The following commit(s) were added to refs/heads/master by this push: new 94f2274 upgrade mysql connector 94f2274 is described below commit 94f2274e687a2e95fc1cdd9f67540e4f7b67945f Author: liubao AuthorDate: Wed May 29 15:34:23 2024 +0800 upgrade mysql connector --- authentication-server/src/main/resources/application.yml | 2 +- pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/authentication-server/src/main/resources/application.yml b/authentication-server/src/main/resources/application.yml index 4bc8f0f..99db2f0 100644 --- a/authentication-server/src/main/resources/application.yml +++ b/authentication-server/src/main/resources/application.yml @@ -60,4 +60,4 @@ spring: url: ${db.url:jdbc:mysql://localhost/authentication_server_db} username: ${db.username:root} password: ${db.password:root} -driver-class-name: com.mysql.jdbc.Driver +driver-class-name: com.mysql.cj.jdbc.Driver diff --git a/pom.xml b/pom.xml index 7bf7af5..da58940 100644 --- a/pom.xml +++ b/pom.xml @@ -75,7 +75,7 @@ mysql mysql-connector-java -5.1.46 +8.0.33
(servicecomb-fence) branch master updated (32780af -> d01b605)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a change to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-fence.git from 32780af refactoring some code new 4e7ac35 新增登录页面 new d01b605 新增登录页面 The 2 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: admin-website/src/main/resources/static/admin/.env | 4 + .../src/main/resources/static/admin/.env.pages | 1 + .../src/main/resources/static/admin/.eslintignore | 3 + .../src/main/resources/static/admin/.eslintrc.js |84 + .../src/main/resources/static/admin/.gitignore | 6 + .../src/main/resources/static/admin/.prettierrc.js |10 + .../main/resources/static/admin/.stylelintrc.js|29 + .../src/main/resources/static/admin/README.md |11 + .../main/resources/static/admin/babel.config.js| 3 + .../resources/static/admin/commitlint.config.js| 3 + .../static/admin/config/plugin/arcoResolver.ts |19 + .../static/admin/config/plugin/compress.ts |34 + .../static/admin/config/plugin/imagemin.ts |37 + .../static/admin/config/plugin/visualizer.ts |18 + .../resources/static/admin/config/utils/index.ts | 9 + .../static/admin/config/vite.config.base.ts|69 + .../static/admin/config/vite.config.dev.ts |37 + .../admin/config/vite.config.preview.base.ts |66 + .../static/admin/config/vite.config.preview.dev.ts |22 + .../admin/config/vite.config.preview.prod.ts |29 + .../static/admin/config/vite.config.prod.ts|23 + .../src/main/resources/static/admin/favicon.ico| Bin 0 -> 45029 bytes .../main/resources/static/admin/hwc-exports.json | 351 + .../src/main/resources/static/admin/index.html |13 + .../main/resources/static/admin/package-lock.json | 17015 +++ .../src/main/resources/static/admin/package.json |99 + .../main/resources/static/admin/public/favicon.png | Bin 0 -> 45029 bytes .../src/main/resources/static/admin/src/App.vue|12 + .../main/resources/static/admin/src/api/board.ts |19 + .../main/resources/static/admin/src/api/user.ts|21 + .../static/admin/src/assets/images/avatar.png | Bin 0 -> 20133 bytes .../static/admin/src/assets/style/breakpoint.less |18 + .../static/admin/src/assets/style/exception.less |50 + .../static/admin/src/assets/style/global.less |28 + .../static/admin/src/assets/style/menu.less|35 + .../admin/src/components/breadcrumb/index.vue |30 + .../resources/static/admin/src/components/index.ts | 8 + .../static/admin/src/components/menu/index.vue | 236 + .../static/admin/src/components/navbar/index.vue | 264 + .../src/main/resources/static/admin/src/env.d.ts |26 + .../resources/static/admin/src/hooks/loading.ts|16 + .../main/resources/static/admin/src/hooks/user.ts |26 + .../static/admin/src/layout/default-layout.vue | 135 + .../static/admin/src/layout/page-layout.vue| 9 + .../src/main/resources/static/admin/src/main.ts|25 + .../resources/static/admin/src/router/index.ts |47 + .../static/admin/src/router/routes/index.ts|15 + .../admin/src/router/routes/modules/kanban.ts |41 + .../resources/static/admin/src/router/typings.d.ts |14 + .../main/resources/static/admin/src/store/index.ts | 8 + .../admin/src/store/modules/tab-bar/index.ts |51 + .../admin/src/store/modules/tab-bar/types.ts |11 + .../static/admin/src/store/modules/user/index.ts |85 + .../static/admin/src/store/modules/user/types.ts |26 + .../main/resources/static/admin/src/types/mock.ts | 5 + .../resources/static/admin/src/types/roleType.ts | 5 + .../board/home/components/call-chain-list.vue | 179 + .../admin/src/views/board/home/components/main.vue | 101 + .../static/admin/src/views/board/home/index.vue|31 + .../static/admin/src/views/board/index.vue | 7 + .../static/admin/src/views/board/list/index.vue|12 + .../src/views/login/components/login-form.vue |49 + .../src/views/login/components/login-mail.vue | 166 + .../static/admin/src/views/login/index.vue |93 + .../src/main/resources/static/admin/tiny.config.js |13 + .../src/main/resources/static/admin/tsconfig.json |21 + 66 files changed, 19933 insertions(+) create mode 100644 admin-website/src/main/resources/static/admin/.env create mode 100644 admin-website/src/main/resources/static/admin/.env.pages create mode 100644 admin-website/src/main/resources/static/admin/.eslintignore create mode
(servicecomb-fence) 02/02: 新增登录页面
This is an automated email from the ASF dual-hosted git repository. liubao pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-fence.git commit d01b605dd8a1e634d6be8aedd1ac39bc4e34402c Author: tianxin AuthorDate: Mon May 27 01:59:40 2024 -0700 新增登录页面 --- admin-website/src/main/resources/static/admin/README.md | 8 ++-- admin-website/src/main/resources/static/admin/index.html | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/admin-website/src/main/resources/static/admin/README.md b/admin-website/src/main/resources/static/admin/README.md index f476a63..fa86292 100644 --- a/admin-website/src/main/resources/static/admin/README.md +++ b/admin-website/src/main/resources/static/admin/README.md @@ -1,7 +1,11 @@ -# TinyPro of vue +# admin ## 说明 -此项目为tiny-toolkit-pro 套件初始化的以 TinyPro of vue 为模板的一个Vue项目 +此项目为tiny-toolkit-pro 套件初始化的以 TinyPro of vue 为模板的一个Vue项目,项目开发指导链接https://www.opentiny.design/vue-pro/docs/start +该项目通过tiny init pro 下载TinyPro of vue 为模板,初始化项目名admin,之后保留了项目中的src/views/login目录下的登录页面,去除了src/views目录下的其余菜单导航文件以及对应的JS文件,对 +src/views/board文件保留文件名,用导航(调用链展示)替换原始路由导航 +并对不满足fence-admin项目的初始化JS文件删除,后期根据项目所需的页面以及交互在对应目录下进行封装即可。 ## 用法 npm run start +或者 tiny start(注:需安装TinyCli脚手架,使用命令npm install @opentiny/cli -g,验证是否安装成功,可以在命令行中执行以下命令,查看 tiny 的版本:tiny -v,指导文档链接:https://www.opentiny.design/tiny-cli/docs/start) diff --git a/admin-website/src/main/resources/static/admin/index.html b/admin-website/src/main/resources/static/admin/index.html index 0b1d5c7..f4062b6 100644 --- a/admin-website/src/main/resources/static/admin/index.html +++ b/admin-website/src/main/resources/static/admin/index.html @@ -4,7 +4,7 @@ -TinyPro of Vue - 开箱即用的中后台前端/设计解决方案 +云原生应用开发套件
(servicecomb-fence) branch master updated: refactoring some code
This is an automated email from the ASF dual-hosted git repository. liubao pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-fence.git The following commit(s) were added to refs/heads/master by this push: new 32780af refactoring some code 32780af is described below commit 32780aff1823d7cd90751bdf2962406fe0296d32 Author: liubao AuthorDate: Sat May 25 17:26:32 2024 +0800 refactoring some code --- .../servicecomb/fence/AdminServiceApplication.java | 2 +- .../fence/admin/AdminObservabilityEndpoint.java| 44 -- .../AsyncObservabilityService.java}| 4 +- .../ServiceDependencyConfiguration.java| 30 ++- .../fence/edge/AuthenticationConfiguration.java| 5 +++ .../edge/AuthenticationServerTokenEndpoint.java| 35 - .../fence/edge/EdgeOpenIDTokenStore.java | 17 + .../servicecomb/fence/edge/TokenEndpoint.java | 13 +-- .../fence/edge/dependencies/AsyncTokenService.java | 19 ++ .../ServiceDependencyConfiguration.java| 13 +++ .../fence/tests/AuthenticationTestCase.java| 2 +- .../resource/AuthenticationConfiguration.java | 8 12 files changed, 85 insertions(+), 107 deletions(-) diff --git a/admin-service/src/main/java/org/apache/servicecomb/fence/AdminServiceApplication.java b/admin-service/src/main/java/org/apache/servicecomb/fence/AdminServiceApplication.java index 2167e76..1135703 100644 --- a/admin-service/src/main/java/org/apache/servicecomb/fence/AdminServiceApplication.java +++ b/admin-service/src/main/java/org/apache/servicecomb/fence/AdminServiceApplication.java @@ -30,4 +30,4 @@ public class AdminServiceApplication { e.printStackTrace(); } } -} \ No newline at end of file +} diff --git a/admin-service/src/main/java/org/apache/servicecomb/fence/admin/AdminObservabilityEndpoint.java b/admin-service/src/main/java/org/apache/servicecomb/fence/admin/AdminObservabilityEndpoint.java index f459db5..acba7ff 100644 --- a/admin-service/src/main/java/org/apache/servicecomb/fence/admin/AdminObservabilityEndpoint.java +++ b/admin-service/src/main/java/org/apache/servicecomb/fence/admin/AdminObservabilityEndpoint.java @@ -17,23 +17,19 @@ package org.apache.servicecomb.fence.admin; -import java.net.URI; import java.util.ArrayList; import java.util.List; -import java.util.Map; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; import org.apache.servicecomb.config.BootStrapProperties; import org.apache.servicecomb.core.Endpoint; -import org.apache.servicecomb.core.SCBEngine; -import org.apache.servicecomb.core.Transport; +import org.apache.servicecomb.core.invocation.endpoint.EndpointUtils; +import org.apache.servicecomb.fence.admin.dependencies.AsyncObservabilityService; import org.apache.servicecomb.fence.api.admin.AdminObservabilityService; import org.apache.servicecomb.fence.api.observability.SearchLogResponse; import org.apache.servicecomb.fence.api.observability.SearchTraceResponse; import org.apache.servicecomb.fence.api.observability.Trace; -import org.apache.servicecomb.foundation.common.concurrent.ConcurrentHashMapEx; -import org.apache.servicecomb.provider.pojo.Invoker; import org.apache.servicecomb.provider.rest.common.RestSchema; import org.apache.servicecomb.registry.DiscoveryManager; import org.apache.servicecomb.registry.api.DiscoveryInstance; @@ -51,8 +47,7 @@ import jakarta.ws.rs.core.Response.Status; public class AdminObservabilityEndpoint implements AdminObservabilityService { private static final Logger LOGGER = LoggerFactory.getLogger(AdminObservabilityEndpoint.class); - private final Map thirdServices = - new ConcurrentHashMapEx<>(); + private AsyncObservabilityService asyncObservabilityService; private DiscoveryManager discoveryManager; @@ -64,11 +59,15 @@ public class AdminObservabilityEndpoint implements AdminObservabilityService { } @Autowired - @SuppressWarnings("unused") public void setDiscoveryManager(DiscoveryManager discoveryManager) { this.discoveryManager = discoveryManager; } + @Autowired + public void setAsyncObservabilityService(AsyncObservabilityService asyncObservabilityService) { +this.asyncObservabilityService = asyncObservabilityService; + } + @Override public List searchTrace(String timestamp, String traceId) { List services = discoveryManager.getPrimaryDiscovery().findServices(application); @@ -87,8 +86,8 @@ public class AdminObservabilityEndpoint implements AdminObservabilityService { continue; } try { - getService(serviceName).searchTrace( - parseEndpoint(instance.getEndpoints().get(0)), + asyncObservabilityService.searchTrace( + EndpointUtils.parse(instance.getEndpoints().get(0)), timestamp, traceId).whenCo
(servicecomb-fence) branch master updated: add admin website
This is an automated email from the ASF dual-hosted git repository. liubao pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-fence.git The following commit(s) were added to refs/heads/master by this push: new 2c09c1f add admin website 2c09c1f is described below commit 2c09c1f22da67eabc144bd09d874054a411cfd8e Author: liubao AuthorDate: Sat May 25 14:16:19 2024 +0800 add admin website --- admin-website/pom.xml | 62 +++ .../servicecomb/fence/AdminWebsiteApplication.java | 42 - .../src/main/resources/application.yml | 32 +++--- admin-website/src/main/resources/log4j2.xml| 69 ++ .../src/main/resources/static}/css/style.css | 0 .../resources/static}/githubLoginCallback.html | 2 +- .../main/resources/static}/js/jquery-1.11.1.min.js | 0 .../src/main/resources/static}/js/login.js | 4 +- .../src/main/resources/static}/js/operation.js | 0 .../src/main/resources/static}/login.html | 0 .../src/main/resources/static}/operation.html | 0 .../fence/observability/ObservabilityEndpoint.java | 16 - .../fence/authentication/user/TokenMapper.java | 21 --- .../fence/authentication/user/UserMapper.java | 9 +-- .../fence/edge/StaticWebpageDispatcher.java| 48 --- ...cecomb.transport.rest.vertx.VertxHttpDispatcher | 18 -- edge-service/src/main/resources/application.yml| 14 +++-- pom.xml| 3 +- 18 files changed, 198 insertions(+), 142 deletions(-) diff --git a/admin-website/pom.xml b/admin-website/pom.xml new file mode 100644 index 000..4b6b185 --- /dev/null +++ b/admin-website/pom.xml @@ -0,0 +1,62 @@ + + + +http://maven.apache.org/POM/4.0.0; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance; + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd;> + 4.0.0 + + + +org.apache.servicecomb.fence +project-fence +0.0.1-SNAPSHOT + + + admin-website + jar + + +UTF-8 + + + + + org.apache.servicecomb + java-chassis-spring-boot-starter-servlet + + + org.springframework.boot + spring-boot-starter-logging + + + + + org.apache.servicecomb.fence + observability-api-impl + ${project.version} + + + org.springframework.boot + spring-boot-autoconfigure + + + + + + +org.springframework.boot +spring-boot-maven-plugin + + + + diff --git a/edge-service/src/main/resources/ui/css/style.css b/admin-website/src/main/java/org/apache/servicecomb/fence/AdminWebsiteApplication.java similarity index 60% copy from edge-service/src/main/resources/ui/css/style.css copy to admin-website/src/main/java/org/apache/servicecomb/fence/AdminWebsiteApplication.java index 5731863..cd9f8c3 100644 --- a/edge-service/src/main/resources/ui/css/style.css +++ b/admin-website/src/main/java/org/apache/servicecomb/fence/AdminWebsiteApplication.java @@ -15,35 +15,19 @@ * limitations under the License. */ -.error { -font-family:verdana; -color:red; -} +package org.apache.servicecomb.fence; -.header { -background-color:black; -color:white; -text-align:center; -padding:5px; -} +import org.springframework.boot.WebApplicationType; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.builder.SpringApplicationBuilder; -.nav { -line-height:30px; -background-color:#ee; -height:300px; -width:100px; -float:left; -padding:5px; -} - -.section { -text-align:center; -padding:5px; -} - -.footer { -color:red; -clear:both; -text-align:center; -padding:25px; +@SpringBootApplication +public class AdminWebsiteApplication { + public static void main(String[] args) { +try { + new SpringApplicationBuilder(AdminWebsiteApplication.class).web(WebApplicationType.SERVLET).run(args); +} catch (Throwable e) { + e.printStackTrace(); +} + } } \ No newline at end of file diff --git a/edge-service/src/main/resources/application.yml b/admin-website/src/main/resources/application.yml similarity index 57% copy from edge-service/src/main/resources/application.yml copy to admin-website/src/main/resources/application.yml index 9955b77..22376da 100644 --- a/edge-service/src/main/resources/application.yml +++ b/admin-website/src/main/resources/application.yml @@ -15,10 +15,13 @@ ## See the License for the specific language governing permissions and ## limitations under the License. ## --- +server: + port: 9098 + servicecomb: service: application: scb-fence -name: edge-service +name: admin-website version: 0.0.1
(servicecomb-java-chassis) branch master updated: [SCB-2881] support setting hibernate validation configuration (#4343)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git The following commit(s) were added to refs/heads/master by this push: new e7046e574 [SCB-2881] support setting hibernate validation configuration (#4343) e7046e574 is described below commit e7046e5744f327f2cc22ad3c517f1d5445ddbdba Author: Alex <97039406+chengyoul...@users.noreply.github.com> AuthorDate: Fri May 24 11:01:41 2024 +0800 [SCB-2881] support setting hibernate validation configuration (#4343) --- .../core/filter/impl/ParameterValidatorFilter.java | 17 +++- .../filter/impl/ParameterValidatorFilterTest.java | 9 +- .../swagger/engine/SwaggerProducerOperation.java | 10 --- .../extension/ProducerInvokeExtension.java | 32 .../invocation/validator/ParameterValidator.java | 95 -- ...er.invocation.extension.ProducerInvokeExtension | 18 6 files changed, 20 insertions(+), 161 deletions(-) diff --git a/core/src/main/java/org/apache/servicecomb/core/filter/impl/ParameterValidatorFilter.java b/core/src/main/java/org/apache/servicecomb/core/filter/impl/ParameterValidatorFilter.java index c33c79579..b4bf06579 100644 --- a/core/src/main/java/org/apache/servicecomb/core/filter/impl/ParameterValidatorFilter.java +++ b/core/src/main/java/org/apache/servicecomb/core/filter/impl/ParameterValidatorFilter.java @@ -17,9 +17,11 @@ package org.apache.servicecomb.core.filter.impl; import java.lang.reflect.Method; +import java.util.Map; import java.util.Set; import java.util.concurrent.CompletableFuture; +import org.apache.servicecomb.config.ConfigUtil; import org.apache.servicecomb.core.Invocation; import org.apache.servicecomb.core.filter.AbstractFilter; import org.apache.servicecomb.core.filter.Filter; @@ -36,6 +38,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.InitializingBean; +import jakarta.validation.Configuration; import jakarta.validation.ConstraintViolation; import jakarta.validation.ConstraintViolationException; import jakarta.validation.Valid; @@ -71,6 +74,8 @@ public class ParameterValidatorFilter extends AbstractFilter implements Provider public static final String NAME = "validator"; + public static final String HIBERNATE_VALIDATE_PREFIX = "hibernate.validator"; + public static final String ENABLE_EL = "servicecomb.filters.validation.useResourceBundleMessageInterpolator"; protected ExecutableValidator validator; @@ -107,11 +112,17 @@ public class ParameterValidatorFilter extends AbstractFilter implements Provider } protected ValidatorFactory createValidatorFactory() { -return Validation.byProvider(HibernateValidator.class) +Configuration validatorConfiguration = Validation.byProvider(HibernateValidator.class) .configure() .propertyNodeNameProvider(new JacksonPropertyNodeNameProvider()) -.messageInterpolator(messageInterpolator()) -.buildValidatorFactory(); +.messageInterpolator(messageInterpolator()); +Map properties = ConfigUtil.stringPropertiesWithPrefix(environment, HIBERNATE_VALIDATE_PREFIX); +if (!properties.isEmpty()) { + for (Map.Entry entry : properties.entrySet()) { +validatorConfiguration.addProperty(entry.getKey(), entry.getValue()); + } +} +return validatorConfiguration.buildValidatorFactory(); } protected AbstractMessageInterpolator messageInterpolator() { diff --git a/core/src/test/java/org/apache/servicecomb/core/filter/impl/ParameterValidatorFilterTest.java b/core/src/test/java/org/apache/servicecomb/core/filter/impl/ParameterValidatorFilterTest.java index f80490978..4afed2d7d 100644 --- a/core/src/test/java/org/apache/servicecomb/core/filter/impl/ParameterValidatorFilterTest.java +++ b/core/src/test/java/org/apache/servicecomb/core/filter/impl/ParameterValidatorFilterTest.java @@ -42,7 +42,8 @@ import org.apache.servicecomb.swagger.invocation.exception.InvocationException; import org.junit.Before; import org.junit.Test; import org.mockito.Mockito; -import org.springframework.core.env.Environment; +import org.springframework.core.env.ConfigurableEnvironment; +import org.springframework.core.env.MutablePropertySources; import com.fasterxml.jackson.annotation.JsonProperty; @@ -96,14 +97,16 @@ public class ParameterValidatorFilterTest { @Mocked SwaggerProducerOperation operation; - Environment environment; + ConfigurableEnvironment environment; @Before public void setUp() throws Exception { -environment = Mockito.mock(Environment.class); +environment = Mockito.mock(ConfigurableEnvironment.class); SCBEngine engine = SCBBootstrap.createSCBEngineForTest(environment); +MutablePropertySources sources = new MutablePropertySources(); Mockito.when(environment.
(servicecomb-java-chassis) branch master updated: prepare new snapshot version (#4349)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git The following commit(s) were added to refs/heads/master by this push: new 1ad8b4dce prepare new snapshot version (#4349) 1ad8b4dce is described below commit 1ad8b4dcead215db8c25c706b2ea33e232a48f66 Author: liubao68 AuthorDate: Fri May 24 10:28:41 2024 +0800 prepare new snapshot version (#4349) --- clients/config-center-client/pom.xml| 2 +- clients/config-common/pom.xml | 2 +- clients/config-kie-client/pom.xml | 2 +- clients/dashboard-client/pom.xml| 2 +- clients/http-client-common/pom.xml | 2 +- clients/pom.xml | 2 +- clients/service-center-client/pom.xml | 2 +- common/common-access-log/pom.xml| 2 +- common/common-protobuf/pom.xml | 2 +- common/common-rest/pom.xml | 2 +- common/pom.xml | 2 +- core/pom.xml| 2 +- coverage-reports/pom.xml| 2 +- demo/demo-crossapp/crossapp-client/pom.xml | 2 +- demo/demo-crossapp/crossapp-server/pom.xml | 2 +- demo/demo-crossapp/pom.xml | 2 +- demo/demo-cse-v1/consumer/pom.xml | 2 +- demo/demo-cse-v1/gateway/pom.xml| 2 +- demo/demo-cse-v1/pom.xml| 2 +- demo/demo-cse-v1/provider-canary/pom.xml| 2 +- demo/demo-cse-v1/provider/pom.xml | 2 +- demo/demo-cse-v1/test-client/pom.xml| 2 +- demo/demo-cse-v2/consumer/pom.xml | 2 +- demo/demo-cse-v2/gateway/pom.xml| 2 +- demo/demo-cse-v2/pom.xml| 2 +- demo/demo-cse-v2/provider/pom.xml | 2 +- demo/demo-cse-v2/test-client/pom.xml| 2 +- demo/demo-edge/authentication/pom.xml | 2 +- demo/demo-edge/business-1-1-0/pom.xml | 2 +- demo/demo-edge/business-1.0.0/pom.xml | 2 +- demo/demo-edge/business-2.0.0/pom.xml | 2 +- demo/demo-edge/consumer/pom.xml | 2 +- demo/demo-edge/edge-service/pom.xml | 2 +- demo/demo-edge/model/pom.xml| 2 +- demo/demo-edge/pom.xml | 2 +- demo/demo-filter/filter-client/pom.xml | 2 +- demo/demo-filter/filter-edge/pom.xml| 2 +- demo/demo-filter/filter-server/pom.xml | 2 +- demo/demo-filter/filter-tests/pom.xml | 2 +- demo/demo-filter/pom.xml| 2 +- demo/demo-jaxrs/jaxrs-client/pom.xml| 2 +- demo/demo-jaxrs/jaxrs-server/pom.xml| 2 +- demo/demo-jaxrs/pom.xml | 2 +- demo/demo-local-registry/demo-local-registry-client/pom.xml | 2 +- demo/demo-local-registry/demo-local-registry-server/pom.xml | 2 +- demo/demo-local-registry/pom.xml| 2 +- demo/demo-multi-registries/demo-multi-registries-client/pom.xml | 2 +- demo/demo-multi-registries/demo-multi-registries-server/pom.xml | 2 +- demo/demo-multi-registries/pom.xml | 2 +- demo/demo-multi-service-center/demo-multi-service-center-client/pom.xml | 2 +- .../demo-multi-service-center/demo-multi-service-center-serverA/pom.xml | 2 +- .../demo-multi-service-center/demo-multi-service-center-serverB/pom.xml | 2 +- demo/demo-multi-service-center/pom.xml | 2 +- demo/demo-multiple/a-client/pom.xml | 2 +- demo/demo-multiple/a-server/pom.xml | 2 +- demo/demo-multiple/b-client/pom.xml | 2 +- demo/demo
(servicecomb-java-chassis) branch master updated: [SCB-2883]support trace id header in response (#4348)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git The following commit(s) were added to refs/heads/master by this push: new 865e58052 [SCB-2883]support trace id header in response (#4348) 865e58052 is described below commit 865e58052fbc926da107618c1b79bc1383639aa7 Author: liubao68 AuthorDate: Fri May 24 08:48:26 2024 +0800 [SCB-2883]support trace id header in response (#4348) --- .../common/rest/RestProducerInvocationFlow.java| 2 +- .../rest/filter/inner/RestServerCodecFilter.java | 23 --- .../src/main/resources/microservice.yaml | 5 .../apache/servicecomb/samples/HelloWorldIT.java | 15 ++ .../servicecomb/edge/core/EdgeAddHeaderFilter.java | 33 +- 5 files changed, 48 insertions(+), 30 deletions(-) diff --git a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/RestProducerInvocationFlow.java b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/RestProducerInvocationFlow.java index b09406bd4..dab6d6f6d 100644 --- a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/RestProducerInvocationFlow.java +++ b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/RestProducerInvocationFlow.java @@ -48,7 +48,7 @@ public class RestProducerInvocationFlow extends ProducerInvocationFlow { protected Invocation sendCreateInvocationException(Throwable throwable) { try { Response response = Exceptions.toProducerResponse(null, throwable); - RestServerCodecFilter.encodeResponse(response, false, DEFAULT_PRODUCE_PROCESSOR, responseEx); + RestServerCodecFilter.encodeResponse(null, response, false, DEFAULT_PRODUCE_PROCESSOR, responseEx); } catch (Throwable e) { LOGGER.error("Failed to send response when prepare invocation failed, request uri:{}", requestEx.getRequestURI(), e); diff --git a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/filter/inner/RestServerCodecFilter.java b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/filter/inner/RestServerCodecFilter.java index b1b3c37b7..18a5d9d94 100644 --- a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/filter/inner/RestServerCodecFilter.java +++ b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/filter/inner/RestServerCodecFilter.java @@ -116,14 +116,14 @@ public class RestServerCodecFilter extends AbstractFilter implements ProviderFil HttpServletResponseEx responseEx = transportContext.getResponseEx(); boolean download = isDownloadFileResponseType(invocation, response); -return encodeResponse(response, download, produceProcessor, responseEx) +return encodeResponse(invocation, response, download, produceProcessor, responseEx) .whenComplete((r, e) -> invocation.onEncodeResponseFinish()); } - public static CompletableFuture encodeResponse(Response response, boolean download, + public static CompletableFuture encodeResponse(Invocation invocation, Response response, boolean download, ProduceProcessor produceProcessor, HttpServletResponseEx responseEx) { responseEx.setStatus(response.getStatusCode()); -copyHeadersToHttpResponse(response.getHeaders(), responseEx); +copyHeadersToHttpResponse(invocation, response.getHeaders(), responseEx); boolean failed = response.getResult() instanceof InvocationException; @@ -167,15 +167,18 @@ public class RestServerCodecFilter extends AbstractFilter implements ProviderFil invocation.findResponseType(response.getStatusCode()).getRawClass()); } - public static void copyHeadersToHttpResponse(MultiMap headers, HttpServletResponseEx responseEx) { -if (headers == null) { - return; + public static void copyHeadersToHttpResponse(Invocation invocation, MultiMap headers, + HttpServletResponseEx responseEx) { +if (headers != null) { + headers.remove(CONTENT_LENGTH); + headers.remove(TRANSFER_ENCODING); + for (Entry entry : headers.entries()) { +responseEx.addHeader(entry.getKey(), entry.getValue()); + } } -headers.remove(CONTENT_LENGTH); -headers.remove(TRANSFER_ENCODING); -for (Entry entry : headers.entries()) { - responseEx.addHeader(entry.getKey(), entry.getValue()); +if (invocation != null && responseEx.getHeader(CoreConst.TRACE_ID_NAME) == null) { + responseEx.addHeader(CoreConst.TRACE_ID_NAME, invocation.getTraceId()); } } } diff --git a/demo/demo-filter/filter-edge/src/main/resources/microservice.yaml b/demo/demo-filter/filter-edge/src/main/resources/microservice.yaml index 034b8cd04..d1730b7fe 100644 --- a/demo/demo-filter/filter-edge/src/main/resources/microservice.yaml +++ b/demo/demo-filter/filter-edge/src/main/resources/microservice
(servicecomb-fence) branch master updated: fix trace order
This is an automated email from the ASF dual-hosted git repository. liubao pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-fence.git The following commit(s) were added to refs/heads/master by this push: new 94123f6 fix trace order 94123f6 is described below commit 94123f6e7f3481df77c74dc80ec2dac3fe3dbd9f Author: liubao AuthorDate: Thu May 23 20:16:39 2024 +0800 fix trace order --- .../apache/servicecomb/fence/admin/AdminObservabilityEndpoint.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/admin-service/src/main/java/org/apache/servicecomb/fence/admin/AdminObservabilityEndpoint.java b/admin-service/src/main/java/org/apache/servicecomb/fence/admin/AdminObservabilityEndpoint.java index ae05385..f459db5 100644 --- a/admin-service/src/main/java/org/apache/servicecomb/fence/admin/AdminObservabilityEndpoint.java +++ b/admin-service/src/main/java/org/apache/servicecomb/fence/admin/AdminObservabilityEndpoint.java @@ -19,7 +19,6 @@ package org.apache.servicecomb.fence.admin; import java.net.URI; import java.util.ArrayList; -import java.util.Comparator; import java.util.List; import java.util.Map; import java.util.concurrent.CountDownLatch; @@ -57,7 +56,7 @@ public class AdminObservabilityEndpoint implements AdminObservabilityService { private DiscoveryManager discoveryManager; - private String application; + private final String application; @Autowired public AdminObservabilityEndpoint(Environment environment) { @@ -65,6 +64,7 @@ public class AdminObservabilityEndpoint implements AdminObservabilityService { } @Autowired + @SuppressWarnings("unused") public void setDiscoveryManager(DiscoveryManager discoveryManager) { this.discoveryManager = discoveryManager; } @@ -114,7 +114,7 @@ public class AdminObservabilityEndpoint implements AdminObservabilityService { } } -responses.sort(Comparator.comparingLong(this::findStamp)); +responses.sort((a, b) -> Long.compare(findStamp(b), findStamp(a))); return responses; }
(servicecomb-fence) branch master updated (5b0978b -> 2b9ef99)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a change to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-fence.git from 5b0978b add observability add 2b9ef99 add admin service No new revisions were added by this update. Summary of changes: {resource-server => admin-service}/pom.xml | 9 +- .../servicecomb/fence/AdminServiceApplication.java | 4 +- .../fence/admin/AdminObservabilityEndpoint.java| 209 + .../fence/admin/third}/ObservabilityService.java | 17 +- .../src/main/resources/application.yml | 16 +- .../src/main/resources/log4j2.xml | 2 +- .../pom.xml| 2 +- .../api/admin/AdminObservabilityService.java} | 25 ++- .../fence/observability/ObservabilityEndpoint.java | 30 +-- .../servicecomb/fence/api/observability/Trace.java | 11 ++ apis/pom.xml | 1 + authentication-server/pom.xml | 5 + .../src/main/resources/application.yml | 2 +- .../fence/token/TokenDynamicProperties.java| 4 +- edge-service/src/main/resources/application.yml| 4 + pom.xml| 1 + resource-server/pom.xml| 5 + 17 files changed, 303 insertions(+), 44 deletions(-) copy {resource-server => admin-service}/pom.xml (88%) copy edge-service/src/main/java/org/apache/servicecomb/fence/EdgeServiceApplication.java => admin-service/src/main/java/org/apache/servicecomb/fence/AdminServiceApplication.java (88%) create mode 100644 admin-service/src/main/java/org/apache/servicecomb/fence/admin/AdminObservabilityEndpoint.java copy {apis/observability-api/src/main/java/org/apache/servicecomb/fence/api/observability => admin-service/src/main/java/org/apache/servicecomb/fence/admin/third}/ObservabilityService.java (65%) copy {resource-server => admin-service}/src/main/resources/application.yml (82%) copy {edge-service => admin-service}/src/main/resources/log4j2.xml (97%) copy apis/{observability-api-impl => admin-service-api}/pom.xml (96%) copy apis/{observability-api/src/main/java/org/apache/servicecomb/fence/api/observability/ObservabilityService.java => admin-service-api/src/main/java/org/apache/servicecomb/fence/api/admin/AdminObservabilityService.java} (63%)
(servicecomb-java-chassis) branch 2.8.x updated: [SCB-2881] support setting hibernate validation configuration (#4341)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a commit to branch 2.8.x in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git The following commit(s) were added to refs/heads/2.8.x by this push: new 0d56846d5 [SCB-2881] support setting hibernate validation configuration (#4341) 0d56846d5 is described below commit 0d56846d5cd7b9306a7c0891fe8c5c713d65a86f Author: Alex <97039406+chengyoul...@users.noreply.github.com> AuthorDate: Thu May 23 16:08:53 2024 +0800 [SCB-2881] support setting hibernate validation configuration (#4341) --- .../core/filter/impl/ParameterValidatorFilter.java | 30 ++-- .../filter/impl/ParameterValidatorFilterTest.java | 10 .../validator/ConfigurationPropertyUtils.java | 55 ++ .../invocation/validator/ParameterValidator.java | 26 +++--- 4 files changed, 109 insertions(+), 12 deletions(-) diff --git a/core/src/main/java/org/apache/servicecomb/core/filter/impl/ParameterValidatorFilter.java b/core/src/main/java/org/apache/servicecomb/core/filter/impl/ParameterValidatorFilter.java index 4b2bcaba2..a6a0a22c4 100644 --- a/core/src/main/java/org/apache/servicecomb/core/filter/impl/ParameterValidatorFilter.java +++ b/core/src/main/java/org/apache/servicecomb/core/filter/impl/ParameterValidatorFilter.java @@ -21,6 +21,7 @@ import java.util.Set; import java.util.concurrent.CompletableFuture; import javax.annotation.Nonnull; +import javax.validation.Configuration; import javax.validation.ConstraintViolation; import javax.validation.ConstraintViolationException; import javax.validation.Validation; @@ -28,6 +29,7 @@ import javax.validation.ValidatorFactory; import javax.validation.executable.ExecutableValidator; import javax.validation.groups.Default; +import org.apache.servicecomb.config.ConfigUtil; import org.apache.servicecomb.core.Invocation; import org.apache.servicecomb.core.filter.FilterNode; import org.apache.servicecomb.core.filter.ProducerFilter; @@ -40,21 +42,28 @@ import org.hibernate.validator.messageinterpolation.ParameterMessageInterpolator import org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.BeansException; import org.springframework.beans.factory.InitializingBean; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; import org.springframework.stereotype.Component; import com.netflix.config.DynamicPropertyFactory; @Component -public class ParameterValidatorFilter implements ProducerFilter, InitializingBean { +public class ParameterValidatorFilter implements ProducerFilter, ApplicationContextAware, InitializingBean { private static final Logger LOGGER = LoggerFactory.getLogger(ParameterValidatorFilter.class); public static final String NAME = "validator"; private static final String ENABLE_EL = "servicecomb.filters.validation.useResourceBundleMessageInterpolator"; + public static final String HIBERNATE_VALIDATE_PREFIX = "hibernate.validator"; + protected ExecutableValidator validator; + private ApplicationContext applicationContext; + @Nonnull @Override public String getName() { @@ -67,12 +76,23 @@ public class ParameterValidatorFilter implements ProducerFilter, InitializingBea .getValidator().forExecutables(); } - protected ValidatorFactory createValidatorFactory() { -return Validation.byProvider(HibernateValidator.class) + @Override + public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { +this.applicationContext = applicationContext; + } + + private ValidatorFactory createValidatorFactory() { +Configuration validatorConfiguration = Validation.byProvider(HibernateValidator.class) .configure() .propertyNodeNameProvider(new JacksonPropertyNodeNameProvider()) -.messageInterpolator(messageInterpolator()) -.buildValidatorFactory(); +.messageInterpolator(messageInterpolator()); +Set keys = ConfigUtil.propertiesWithPrefix(applicationContext.getEnvironment(), HIBERNATE_VALIDATE_PREFIX); +if (!keys.isEmpty()) { + for (String key : keys) { +validatorConfiguration.addProperty(key, applicationContext.getEnvironment().getProperty(key)); + } +} +return validatorConfiguration.buildValidatorFactory(); } protected AbstractMessageInterpolator messageInterpolator() { diff --git a/core/src/test/java/org/apache/servicecomb/core/filter/impl/ParameterValidatorFilterTest.java b/core/src/test/java/org/apache/servicecomb/core/filter/impl/ParameterValidatorFilterTest.java index 7942a355f..f08b89176 100644 --- a/core/src/test/java/org/apache/servicecomb/core/filter/impl/ParameterValidatorFilterTest.java +++ b/core/src/test/java/org
(servicecomb-java-chassis) branch master updated: [SCB-2882]add services discovery api and support global instance id bean (#4347)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git The following commit(s) were added to refs/heads/master by this push: new d26c15d77 [SCB-2882]add services discovery api and support global instance id bean (#4347) d26c15d77 is described below commit d26c15d779449a710a65e69bce99f8bd423f4d48 Author: liubao68 AuthorDate: Thu May 23 16:00:57 2024 +0800 [SCB-2882]add services discovery api and support global instance id bean (#4347) --- .../servicecomb/registry/DiscoveryManager.java | 4 +++ .../servicecomb/registry/RegistrationId.java | 41 ++ .../servicecomb/registry/RegistrationManager.java | 4 +++ .../registry/RegistryConfiguration.java| 5 +++ .../apache/servicecomb/registry/api/Discovery.java | 8 + .../servicecomb/registry/TestDiscoveryManager.java | 5 +++ .../servicecomb/registry/lightweight/Self.java | 16 + .../registry/lightweight/StoreServiceTest.java | 6 ++-- .../servicecomb/localregistry/LocalDiscovery.java | 5 +++ .../localregistry/LocalRegistrationInstance.java | 12 +++ .../localregistry/LocalRegistryConfiguration.java | 7 ++-- .../localregistry/LocalRegistryStore.java | 7 .../registry/nacos/NacosConfiguration.java | 5 +-- .../servicecomb/registry/nacos/NacosDiscovery.java | 10 ++ .../registry/nacos/NacosRegistration.java | 10 ++ .../servicecomb/registry/sc/SCDiscovery.java | 9 + .../servicecomb/registry/sc/SCRegistration.java| 9 + .../zeroconfig/ZeroConfigDiscovery.java| 9 + .../registry/zookeeper/ZookeeperDiscovery.java | 28 +++ .../registry/zookeeper/ZookeeperRegistration.java | 15 20 files changed, 182 insertions(+), 33 deletions(-) diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/DiscoveryManager.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/DiscoveryManager.java index 33b1a23f5..eed808223 100644 --- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/DiscoveryManager.java +++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/DiscoveryManager.java @@ -93,6 +93,10 @@ public class DiscoveryManager implements LifeCycle { }); } + public Discovery getPrimaryDiscovery() { +return this.discoveryList.get(0); + } + private void doTask() { // doTask can not throw exception or will mute all tasks. try { diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/RegistrationId.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/RegistrationId.java new file mode 100644 index 0..9932f5fdf --- /dev/null +++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/RegistrationId.java @@ -0,0 +1,41 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.servicecomb.registry; + +import java.util.UUID; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class RegistrationId { + private static final Logger LOGGER = LoggerFactory.getLogger(RegistrationId.class); + + private final String instanceId; + + public RegistrationId() { +this.instanceId = buildInstanceId(); +LOGGER.info("initialized global registration id {}", this.instanceId); + } + + public String getInstanceId() { +return instanceId; + } + + private static String buildInstanceId() { +return UUID.randomUUID().toString(); + } +} diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/RegistrationManager.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/RegistrationManager.java index 3d07a9122..1113f80f8 100644 --- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/RegistrationManager.java +++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/RegistrationManager.
(servicecomb-java-chassis) branch liubao_master created (now 6fa467752)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a change to branch liubao_master in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git at 6fa467752 [SCB-2882]add services discovery api and support global instance id bean This branch includes the following new commits: new 6fa467752 [SCB-2882]add services discovery api and support global instance id bean The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference.
(servicecomb-java-chassis) 01/01: [SCB-2882]add services discovery api and support global instance id bean
This is an automated email from the ASF dual-hosted git repository. liubao pushed a commit to branch liubao_master in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git commit 6fa467752891d887ca3098b505a858b6cac0e9fd Author: liubao AuthorDate: Wed May 22 16:16:08 2024 +0800 [SCB-2882]add services discovery api and support global instance id bean --- .../servicecomb/registry/RegistrationId.java | 41 ++ .../registry/RegistryConfiguration.java| 5 +++ .../apache/servicecomb/registry/api/Discovery.java | 8 + .../servicecomb/registry/TestDiscoveryManager.java | 5 +++ .../servicecomb/registry/lightweight/Self.java | 16 + .../registry/lightweight/StoreServiceTest.java | 6 ++-- .../servicecomb/localregistry/LocalDiscovery.java | 5 +++ .../localregistry/LocalRegistrationInstance.java | 12 +++ .../localregistry/LocalRegistryConfiguration.java | 7 ++-- .../localregistry/LocalRegistryStore.java | 7 .../registry/nacos/NacosConfiguration.java | 5 +-- .../servicecomb/registry/nacos/NacosDiscovery.java | 10 ++ .../registry/nacos/NacosRegistration.java | 10 ++ .../servicecomb/registry/sc/SCDiscovery.java | 9 + .../servicecomb/registry/sc/SCRegistration.java| 9 + .../zeroconfig/ZeroConfigDiscovery.java| 9 + .../registry/zookeeper/ZookeeperDiscovery.java | 28 +++ .../registry/zookeeper/ZookeeperRegistration.java | 15 18 files changed, 174 insertions(+), 33 deletions(-) diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/RegistrationId.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/RegistrationId.java new file mode 100644 index 0..9932f5fdf --- /dev/null +++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/RegistrationId.java @@ -0,0 +1,41 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.servicecomb.registry; + +import java.util.UUID; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class RegistrationId { + private static final Logger LOGGER = LoggerFactory.getLogger(RegistrationId.class); + + private final String instanceId; + + public RegistrationId() { +this.instanceId = buildInstanceId(); +LOGGER.info("initialized global registration id {}", this.instanceId); + } + + public String getInstanceId() { +return instanceId; + } + + private static String buildInstanceId() { +return UUID.randomUUID().toString(); + } +} diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/RegistryConfiguration.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/RegistryConfiguration.java index b3c83b64a..6581d266b 100644 --- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/RegistryConfiguration.java +++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/RegistryConfiguration.java @@ -66,4 +66,9 @@ public class RegistryConfiguration { public MicroserviceInstanceCache microserviceInstanceCache(DiscoveryManager discoveryManager) { return new MicroserviceInstanceCache(discoveryManager); } + + @Bean + public RegistrationId registrationId() { +return new RegistrationId(); + } } diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/Discovery.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/Discovery.java index 6fb382835..0c57ed6b6 100644 --- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/Discovery.java +++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/api/Discovery.java @@ -55,6 +55,14 @@ public interface Discovery extends SPIEnabled, SPIO */ List findServiceInstances(String application, String serviceName); + /** + * Find all services of this application. + * + * @param application application + * @return all services matc
(servicecomb-fence) branch master updated (142d3d6 -> 5b0978b)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a change to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-fence.git from 142d3d6 make integration tests run new adf3f14 update spring security dependencies new 5b0978b add observability The 2 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: .../pom.xml| 16 +- .../fence/observability/ObservabilityEndpoint.java | 173 + .../pom.xml| 2 +- .../fence/api/observability/Endpoint.java | 30 ++-- .../api/observability/ObservabilityService.java| 49 ++ .../fence/api/observability/SearchLogResponse.java | 76 + .../api/observability/SearchTraceResponse.java | 76 + .../servicecomb/fence/api/observability/Trace.java | 120 ++ apis/pom.xml | 2 + authentication-server/pom.xml | 8 - .../src/main/resources/log4j2.xml | 34 ++-- common/pom.xml | 8 +- edge-service/pom.xml | 5 + edge-service/src/main/resources/log4j2.xml | 34 ++-- integration-tests/src/main/resources/log4j2.xml| 34 ++-- pom.xml| 12 +- .../resource/MethodSecurityConfiguration.java | 20 +-- resource-server/src/main/resources/log4j2.xml | 34 ++-- 18 files changed, 608 insertions(+), 125 deletions(-) copy apis/{authentication-server-api => observability-api-impl}/pom.xml (93%) create mode 100644 apis/observability-api-impl/src/main/java/org/apache/servicecomb/fence/observability/ObservabilityEndpoint.java copy apis/{resource-server-api => observability-api}/pom.xml (96%) copy common/src/main/java/org/apache/servicecomb/fence/jwt/JWTHeader.java => apis/observability-api/src/main/java/org/apache/servicecomb/fence/api/observability/Endpoint.java (66%) create mode 100644 apis/observability-api/src/main/java/org/apache/servicecomb/fence/api/observability/ObservabilityService.java create mode 100644 apis/observability-api/src/main/java/org/apache/servicecomb/fence/api/observability/SearchLogResponse.java create mode 100644 apis/observability-api/src/main/java/org/apache/servicecomb/fence/api/observability/SearchTraceResponse.java create mode 100644 apis/observability-api/src/main/java/org/apache/servicecomb/fence/api/observability/Trace.java
(servicecomb-fence) 01/02: update spring security dependencies
This is an automated email from the ASF dual-hosted git repository. liubao pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-fence.git commit adf3f144f74de94182fd7cb940e70300b9b9b7df Author: liubao AuthorDate: Wed May 15 17:32:24 2024 +0800 update spring security dependencies --- authentication-server/pom.xml| 8 common/pom.xml | 8 ++-- pom.xml | 5 - .../fence/resource/MethodSecurityConfiguration.java | 20 4 files changed, 14 insertions(+), 27 deletions(-) diff --git a/authentication-server/pom.xml b/authentication-server/pom.xml index b7fd641..8e3cd1f 100644 --- a/authentication-server/pom.xml +++ b/authentication-server/pom.xml @@ -39,14 +39,6 @@ authentication-server-api ${project.version} - - org.springframework.security.oauth - spring-security-oauth2 - - - org.springframework.security - spring-security-jwt - org.apache.servicecomb java-chassis-spring-boot-starter-standalone diff --git a/common/pom.xml b/common/pom.xml index 14054fc..44187ea 100644 --- a/common/pom.xml +++ b/common/pom.xml @@ -31,8 +31,12 @@ - org.springframework.security.oauth - spring-security-oauth2 + org.springframework.security + spring-security-core + + + org.springframework.security + spring-security-config org.springframework.security diff --git a/pom.xml b/pom.xml index 10ecc1d..cc00669 100644 --- a/pom.xml +++ b/pom.xml @@ -52,11 +52,6 @@ - -org.springframework.security.oauth -spring-security-oauth2 -2.3.6.RELEASE - org.springframework.security spring-security-jwt diff --git a/resource-server/src/main/java/org/apache/servicecomb/fence/resource/MethodSecurityConfiguration.java b/resource-server/src/main/java/org/apache/servicecomb/fence/resource/MethodSecurityConfiguration.java index 4fc2316..f7e54f1 100644 --- a/resource-server/src/main/java/org/apache/servicecomb/fence/resource/MethodSecurityConfiguration.java +++ b/resource-server/src/main/java/org/apache/servicecomb/fence/resource/MethodSecurityConfiguration.java @@ -17,20 +17,16 @@ package org.apache.servicecomb.fence.resource; +import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler; -import org.springframework.security.access.expression.method.MethodSecurityExpressionHandler; -import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; -import org.springframework.security.config.annotation.method.configuration.GlobalMethodSecurityConfiguration; +import org.springframework.security.config.annotation.method.configuration.EnableMethodSecurity; +import org.springframework.security.config.core.GrantedAuthorityDefaults; @Configuration -@EnableGlobalMethodSecurity( -prePostEnabled = true) -public class MethodSecurityConfiguration extends GlobalMethodSecurityConfiguration { - @Override - protected MethodSecurityExpressionHandler createExpressionHandler() { -DefaultMethodSecurityExpressionHandler h = (DefaultMethodSecurityExpressionHandler) super.createExpressionHandler(); -h.setDefaultRolePrefix(""); -return h; +@EnableMethodSecurity +public class MethodSecurityConfiguration { + @Bean + public GrantedAuthorityDefaults grantedAuthorityDefaults() { +return new GrantedAuthorityDefaults(""); } }
(servicecomb-fence) 02/02: add observability
This is an automated email from the ASF dual-hosted git repository. liubao pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-fence.git commit 5b0978b118dadf58d4d466be41f1999f355545d3 Author: liubao AuthorDate: Wed May 22 11:35:47 2024 +0800 add observability --- .../observability-api-impl}/pom.xml| 40 + .../fence/observability/ObservabilityEndpoint.java | 173 + {edge-service => apis/observability-api}/pom.xml | 45 +- .../fence/api/observability/Endpoint.java | 41 + .../api/observability/ObservabilityService.java| 49 ++ .../fence/api/observability/SearchLogResponse.java | 76 + .../api/observability/SearchTraceResponse.java | 76 + .../servicecomb/fence/api/observability/Trace.java | 120 ++ apis/pom.xml | 2 + .../src/main/resources/log4j2.xml | 34 ++-- edge-service/pom.xml | 5 + edge-service/src/main/resources/log4j2.xml | 34 ++-- integration-tests/src/main/resources/log4j2.xml| 34 ++-- pom.xml| 7 +- resource-server/src/main/resources/log4j2.xml | 34 ++-- 15 files changed, 621 insertions(+), 149 deletions(-) diff --git a/edge-service/pom.xml b/apis/observability-api-impl/pom.xml similarity index 58% copy from edge-service/pom.xml copy to apis/observability-api-impl/pom.xml index 878713c..5b3d01e 100644 --- a/edge-service/pom.xml +++ b/apis/observability-api-impl/pom.xml @@ -1,3 +1,4 @@ + + + org.apache.servicecomb + handler-tracing-zipkin + org.apache.servicecomb diff --git a/resource-server/src/main/resources/log4j2.xml b/resource-server/src/main/resources/log4j2.xml index 9ccb795..07e3498 100644 --- a/resource-server/src/main/resources/log4j2.xml +++ b/resource-server/src/main/resources/log4j2.xml @@ -22,50 +22,48 @@ - + - - + + - + - - + + - + - - + + - + - - + + - - - +
(servicecomb-docs) branch master updated: add tracing docs (#338)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-docs.git The following commit(s) were added to refs/heads/master by this push: new bc41e89 add tracing docs (#338) bc41e89 is described below commit bc41e895794d8c2f0fb29e26b2dae313e6058ca0 Author: liubao68 AuthorDate: Tue May 21 12:02:42 2024 +0800 add tracing docs (#338) --- .../docs/general-development/customized-tracing.md | 94 --- .../microservice-invocation-chain.md | 104 +++-- java-chassis-reference/zh_CN/mkdocs.yml| 9 +- 3 files changed, 83 insertions(+), 124 deletions(-) diff --git a/java-chassis-reference/zh_CN/docs/general-development/customized-tracing.md b/java-chassis-reference/zh_CN/docs/general-development/customized-tracing.md deleted file mode 100644 index 78e8ad6..000 --- a/java-chassis-reference/zh_CN/docs/general-development/customized-tracing.md +++ /dev/null @@ -1,94 +0,0 @@ -## 概念阐述 - -分布式调用链追踪提供了服务间调用的时序信息,但服务内部的链路调用信息对开发者同样重要,如果能将两者合二为一,就能提供更完整的调用链,更容易定位错误和潜在性能问题。 - -## 前提条件 - -* 使用自定义打点功能需要首先配置并启用Java Chassis微服务调用链。 - -## 注意事项 - -* 使用`@Span`注释的自定义打点功能只支持和Java Chassis调用请求同一线程的方法调用。 -* 添加`@Span`注释的方法必须是Spring管理的Bean,否则需要按这里[提到的方法](https://stackoverflow.com/questions/41383941/load-time-weaving-for-non-spring-beans-in-a-spring-application)配置。 - -## 自定义调用链打点 - -该功能集成了Zipkin,提供`@Span`注释为需要追踪的方法自定义打点。Java Chassis将自动追踪所有添加`@Span`注释的方法,把每个方法的本地调用信息与服务间调用信息连接起来。 - -## 使用步骤: - -### 添加依赖 - -基于 ServiceComb Java Chassis 的微服务只需要添加如下依赖到 pom.xml: - -```xml - - org.apache.servicecomb - tracing-zipkin - -``` - -### 启用自定义打点功能 {#配置追踪处理和数据收集} - -在应用入口或Spring配置类上添加`@EnableZipkinTracing`注释: - -```java -@SpringBootApplication -@EnableZipkinTracing -public class ZipkinSpanTestApplication { - public static void main(String[] args) { -SpringApplication.run(ZipkinSpanTestApplication.class); - } -} -``` - -### 定制打点 - -在需要定制打点的方法上添加`@Span`注释: - -```java -@Component -public class SlowRepoImpl implements SlowRepo { - private static final Logger logger = LoggerFactory.getLogger(SlowRepoImpl.class); - - private final Random random = new Random(); - - @Span - @Override - public String crawl() throws InterruptedException { -logger.info("in /crawl"); -Thread.sleep(random.nextInt(200)); -return "crawled"; - } -} -``` - -就这样,通过使用`@Span`注释,我们启动了基于 Zipkin 的自定义打点功能。 - -## 定制上报的数据 - -通过自定义打点上报的调用链包含两条数据: - -* **span name** 默认为当前注释的方法全名。 -* **call.path** 默认为当前注释的方法签名。 - -例如,上述例子`SlowRepoImp`里上报的数据如下: - -| key | value | -| :--- | :--- | -| span name | crawl | -| call.path | public abstract java.lang.String org.apache.servicecomb.tests.tracing.SlowRepo.crawl\(\) throws java.lang.InterruptedException | - -如果需要定制上报的数据内容,可以传入自定义的参数: - -```java - public static class CustomSpanTask { -@Span(spanName = "transaction1", callPath = "startA") -public String invoke() { - return "invoke the method"; -} - } -``` - - - diff --git a/java-chassis-reference/zh_CN/docs/general-development/microservice-invocation-chain.md b/java-chassis-reference/zh_CN/docs/general-development/microservice-invocation-chain.md index ce2301c..637a283 100644 --- a/java-chassis-reference/zh_CN/docs/general-development/microservice-invocation-chain.md +++ b/java-chassis-reference/zh_CN/docs/general-development/microservice-invocation-chain.md @@ -1,4 +1,4 @@ -## 概念阐述 +# 微服务调用链 微服务架构解决了很多单体应用带来的问题,但同时也需要我们付出额外的代价。由于网络的不稳定性带来的请求处理延迟就是代价之一。 @@ -10,15 +10,15 @@ ## Zipkin -> [Zipkin](http://zipkin.io/)是一个分布式调用链追踪系统。 它能帮助用户收集时序数据用以定位微服务中的延迟问题,它同时管理追踪数据的收集 和查询。Zipkin 的设计基于 Google [Dapper paper](http://research.google.com/pubs/pub36356.html)。 +> [Zipkin](http://zipkin.io/) 是一个分布式调用链追踪系统。 它能帮助用户收集时序数据用以定位微服务中的延迟问题,它同时管理追踪数据的收集 和查询。 -ServiceComb 集成了 Zipkin 提供自动调用链追踪能力,如此一来用户只需要专注实现其业务需求。 +Java Chassis 集成了 Zipkin 提供自动调用链追踪能力,如此一来用户只需要专注实现其业务需求。 ## 使用步骤: -### 添加依赖 +* 添加依赖 -基于 ServiceComb Java Chassis 的微服务只需要添加如下依赖到 pom.xml: +基于 Java Chassis 的微服务只需要添加如下依赖到 pom.xml: ```xml @@ -27,36 +27,88 @@ ServiceComb 集成了 Zipkin 提供自动调用链追踪能力,如此一来用 ``` -如果微服务是基于 Spring Cloud + Zuul 的 API 网关,例如 workshop demo 中的 manager service ,我们还需要加入如下的额外依赖: +默认情况下,调用链数据会输出到日志文件,也可以将调用链数据上报到 `Zipkin` 服务器。 + +```yaml + servicecomb: +tracing: + enabled: true # 是否启用调用链追踪功能,默认为 true + reporter: +log.enabled: true # 是否将调用链日志输出到文件, 默认为 true +zipkin.enabled: true # 是否将调用链日志输出到Zipkin服务器, 默认为 false + collector: # 配置Zipkin服务器 API 版本和地址信息 +apiVersion: v2 +address: http://zipkin.servicecomb.io:9411 + +``` + +> 注意:使用Java Chassis 3.1.2及其以上版本 + +## 自定义调用链打点 + +分布式调用链追踪提供了服务间调用的时序信息,但服务内部的链路调用信息对开发者同样重要,如果能将两者合二为一,就能提供更完整的调用链,更容易定位错误和潜在性能问题。Java Chassis 提供`@Span`注释为需要追踪的方法自定义打点。Java Chassis将自动追踪所有添加`@Span`注释的方法,把每个方法的本地调用信息与服务间调用信息连接起来。 + +使用
(servicecomb-java-chassis) branch master updated: [SCB-2880]able to inherit trace in edge service from web (#4339)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git The following commit(s) were added to refs/heads/master by this push: new 633e8e2c7 [SCB-2880]able to inherit trace in edge service from web (#4339) 633e8e2c7 is described below commit 633e8e2c704e792a465d334269885b7c03da28a3 Author: liubao68 AuthorDate: Tue May 21 11:59:09 2024 +0800 [SCB-2880]able to inherit trace in edge service from web (#4339) --- .../protobuf/definition/OperationProtobuf.java | 4 +- .../internal/converter/TestSchemaMetaCodec.java| 8 ++-- .../converter/TestSchemaMetaCodecRestTemplate.java | 8 ++-- .../org/apache/servicecomb/core/Invocation.java| 10 ++--- .../core/exception/DefaultExceptionProcessor.java | 2 +- .../servicecomb/core/governance/MatchType.java | 8 ++-- .../core/provider/consumer/InvokerUtils.java | 6 +-- .../servicecomb/core/tracing/TraceIdLogger.java| 2 +- .../core/invocation/TestInvocationStageTrace.java | 2 +- .../demo/pojo/client/CodeFirstPojoClient.java | 4 +- .../edge/core/EdgeInvocationCreator.java | 2 +- .../tracing/zipkin/CustomHttpRequestParser.java| 5 ++- .../tracing/zipkin/CustomHttpResponseParser.java | 7 +++- .../tracing/zipkin/HttpClientRequestWrapper.java | 2 +- .../tracing/zipkin/HttpClientResponseWrapper.java | 2 +- .../tracing/zipkin/HttpServeRequestWrapper.java| 16 ++-- .../tracing/zipkin/TracingConfiguration.java | 8 ++-- .../tracing/zipkin/ZipkinTracingFilter.java| 45 -- .../metrics/core/InvocationMetersInitializer.java | 9 ++--- .../meter/invocation/AbstractInvocationMeters.java | 8 +--- .../metrics/core/publish/SlowInvocationLogger.java | 2 +- .../core/TestInvocationMetersInitializer.java | 2 +- .../core/publish/TestSlowInvocationLogger.java | 10 ++--- 23 files changed, 107 insertions(+), 65 deletions(-) diff --git a/common/common-protobuf/src/main/java/org/apache/servicecomb/codec/protobuf/definition/OperationProtobuf.java b/common/common-protobuf/src/main/java/org/apache/servicecomb/codec/protobuf/definition/OperationProtobuf.java index 221820761..5c22ad8c7 100644 --- a/common/common-protobuf/src/main/java/org/apache/servicecomb/codec/protobuf/definition/OperationProtobuf.java +++ b/common/common-protobuf/src/main/java/org/apache/servicecomb/codec/protobuf/definition/OperationProtobuf.java @@ -117,7 +117,7 @@ public class OperationProtobuf { ProtoMapper mapper = scopedProtobufSchemaManager.getOrCreateProtoMapper(invocation.getSchemaMeta()); Message requestMessage = mapper.getRequestMessage(invocation.getOperationMeta().getOperationId()); -if (!invocation.isConsumer()) { +if (invocation.isProducer()) { initProducerRequestCodec(invocation, requestMessage, mapper); } else { initConsumerRequestCodec(invocation, requestMessage, mapper); @@ -167,7 +167,7 @@ public class OperationProtobuf { Message responseMessage = mapper.getResponseMessage(invocation.getOperationMeta().getOperationId()); JavaType responseType = invocation.findResponseType(Status.OK.getStatusCode()); -if (!invocation.isConsumer()) { +if (invocation.isProducer()) { initProviderResponseCode(responseMessage, mapper, responseType); } else { initConsumerResponseCode(responseMessage, mapper, responseType); diff --git a/common/common-protobuf/src/test/java/org/apache/servicecomb/codec/protobuf/internal/converter/TestSchemaMetaCodec.java b/common/common-protobuf/src/test/java/org/apache/servicecomb/codec/protobuf/internal/converter/TestSchemaMetaCodec.java index 17efb6eb5..141b7cf4b 100644 --- a/common/common-protobuf/src/test/java/org/apache/servicecomb/codec/protobuf/internal/converter/TestSchemaMetaCodec.java +++ b/common/common-protobuf/src/test/java/org/apache/servicecomb/codec/protobuf/internal/converter/TestSchemaMetaCodec.java @@ -118,18 +118,18 @@ public class TestSchemaMetaCodec { private Invocation mockInvocation(String operation, InvocationType invocationType) { OperationMeta operationMeta; -boolean isConsumer; +boolean isProvider; Invocation invocation = Mockito.mock(Invocation.class); InvocationRuntimeType invocationRuntimeType; if (InvocationType.CONSUMER == invocationType) { operationMeta = consumerSchemaMeta.getOperations().get(operation); - isConsumer = true; + isProvider = false; Mockito.when(invocation.getSchemaMeta()).thenReturn(consumerSchemaMeta); invocationRuntimeType = operationMeta.buildBaseConsumerRuntimeType(); } else { operationMeta = providerSchemaMeta.getOperations().get(operation); - isConsumer = false; + isProvider = true; Mockito.when(invocation.getSchemaMeta()).thenReturn(providerSchemaMeta); invocationRuntimeType
(servicecomb-java-chassis) branch master updated: [SCB-2879]tracing supporting write local logs and improve trace information (#4338)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git The following commit(s) were added to refs/heads/master by this push: new 67efcf23b [SCB-2879]tracing supporting write local logs and improve trace information (#4338) 67efcf23b is described below commit 67efcf23b4f7e1157e1443177ee4ee91e3600fed Author: liubao68 AuthorDate: Fri May 17 14:02:46 2024 +0800 [SCB-2879]tracing supporting write local logs and improve trace information (#4338) --- dependencies/default/pom.xml | 47 ++ handlers/handler-tracing-zipkin/pom.xml| 13 ++- ...gDelegate.java => CustomHttpRequestParser.java} | 28 +++--- ...Delegate.java => CustomHttpResponseParser.java} | 34 +++ .../tracing/zipkin/HttpClientRequestWrapper.java | 41 +++- .../tracing/zipkin/HttpClientResponseWrapper.java | 45 +++-- .../tracing/zipkin/HttpServeRequestWrapper.java| 35 ++- .../tracing/zipkin/HttpServerResponseWrapper.java | 45 +++-- ...inTracingDelegate.java => InvocationAware.java} | 16 +--- ...kinTracingDelegate.java => LogSpanHandler.java} | 29 +++--- .../tracing/zipkin/TracingConfiguration.java | 103 + .../tracing/zipkin/ZipkinConsumerDelegate.java | 75 --- .../tracing/zipkin/ZipkinProviderDelegate.java | 100 .../tracing/zipkin/ZipkinTracingFilter.java| 81 ++-- .../tracing/zipkin/ZipkinProviderDelegateTest.java | 75 --- tracing/tracing-zipkin/pom.xml | 12 ++- .../tracing/zipkin/ZipkinTracingAdviser.java | 12 ++- .../tracing/zipkin/ZipkinSpanAspectTest.java | 4 +- 18 files changed, 258 insertions(+), 537 deletions(-) diff --git a/dependencies/default/pom.xml b/dependencies/default/pom.xml index 34df496e8..bd9997765 100644 --- a/dependencies/default/pom.xml +++ b/dependencies/default/pom.xml @@ -34,7 +34,7 @@ 1.2.2 3.25.3 4.2.1 -5.17.0 +6.0.3 1.9.4 2.15.1 2.6 @@ -87,8 +87,8 @@ 6.0.9 2.2.21 4.4.8 -3.1.1 -2.17.1 +3.3.0 +3.4.0 ${basedir}/../.. @@ -303,48 +303,15 @@ io.zipkin.brave -brave -${brave.version} - - -io.zipkin.brave -brave-context-slf4j -${brave.version} - - -io.zipkin.brave -brave-instrumentation-jaxrs2 -${brave.version} - - -io.zipkin.brave -brave-instrumentation-servlet -${brave.version} - - -io.zipkin.brave -brave-instrumentation-spring-web -${brave.version} - - -io.zipkin.brave -brave-instrumentation-spring-webmvc -${brave.version} - - -io.zipkin.brave -brave-spring-beans +brave-bom ${brave.version} +pom +import io.zipkin.reporter2 -zipkin-reporter -${zipkin-reporter.version} - - -io.zipkin.reporter2 -zipkin-sender-okhttp3 +zipkin-reporter-bom ${zipkin-reporter.version} diff --git a/handlers/handler-tracing-zipkin/pom.xml b/handlers/handler-tracing-zipkin/pom.xml index 4246de015..d5d60d750 100644 --- a/handlers/handler-tracing-zipkin/pom.xml +++ b/handlers/handler-tracing-zipkin/pom.xml @@ -50,18 +50,17 @@ io.zipkin.brave brave - - io.zipkin.reporter2 - zipkin-sender-okhttp3 - io.zipkin.brave brave-context-slf4j - io.zipkin.zipkin2 - zipkin - compile + io.zipkin.reporter2 + zipkin-sender-okhttp3 + + + io.zipkin.reporter2 + zipkin-reporter-brave diff --git a/handlers/handler-tracing-zipkin/src/main/java/org/apache/servicecomb/tracing/zipkin/ZipkinTracingDelegate.java b/handlers/handler-tracing-zipkin/src/main/java/org/apache/servicecomb/tracing/zipkin/CustomHttpRequestParser.java similarity index 61% copy from handlers/handler-tracing-zipkin/src/main/java/org/apache/servicecomb/tracing/zipkin/ZipkinTracingDelegate.java copy to handlers/handler-tracing-zipkin/src/main/java/org/apache/servicecomb/tracing/zipkin/CustomHttpRequestParser.java index 3761a8d84..7fc617a87 100644 --- a/handlers/handler-tracing-zipkin/src/main/java/org/apache/servicecomb/tracing/zipkin/ZipkinTracingDelegate.java +++ b/handlers/handler-tracing-zipkin/src/main/java/org/apache/servicecomb/tracing/zipkin/CustomHttpRequestParser.java @@ -14,22 +14,22 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.apache.servicecomb.tracing.zipkin; import org.apache.servicecomb.core.Invocat
(servicecomb-java-chassis) branch master updated: update readme (#4337)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git The following commit(s) were added to refs/heads/master by this push: new 55281634c update readme (#4337) 55281634c is described below commit 55281634cfac2451ae584167c659b22a324b6c08 Author: liubao68 AuthorDate: Wed May 15 15:37:54 2024 +0800 update readme (#4337) --- README.md| 2 +- README_ZH.md | 10 -- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 9c3e61802..7653dfe86 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ Apache ServiceComb Java Chassis is a Software Development Kit (SDK) for rapid de | Release Train | Latest Version | Compiled JDK Version | Tested JDK Version | Open API | Notes| |||--||--|--| -| Java Chassis 3 | 3.1.0 | OpenJDK 17 | OpenJDK 17 | 3.0.x| Depends on Spring Boot 3 | +| Java Chassis 3 | 3.1.1 | OpenJDK 17 | OpenJDK 17 | 3.0.x| Depends on Spring Boot 3 | | Java Chassis 2 | 2.8.16 | OpenJDK 8| OpenJDK 8, 11, 17 | 2.0.x| Depends on Spring 5 | | Java Chassis 1 | 1.3.11 | OpenJDK 8| OpenJDK 8 | 2.0.x| End of Support | diff --git a/README_ZH.md b/README_ZH.md index 9a1cd17b8..6fbc4150c 100644 --- a/README_ZH.md +++ b/README_ZH.md @@ -8,15 +8,13 @@ Apache ServiceComb Java Chassis 给开发者提供一个快速构建微服务的 * 统一一致的服务提供者、服务消费者处理链,易于扩展新功能。 * 提供服务发现、配置管理、熔断、限流、灰度发布等开箱即用的服务治理能力。 -开发者可以通过[设计选型参考][design]了解更多特性和设计原理。 +可以通过[设计选型参考](https://servicecomb.apache.org/references/java-chassis/zh_CN/start/design.html) 了解更多特性和设计原理。 -[design]: https://servicecomb.apache.org/references/java-chassis/zh_CN/start/design.html - -# releases +# 发布版本 | 版本火车 | 最新版本 | 编译的JDK版本 | 支持的JDK版本 | Open API | 备注 | ||||---|--|-| -| Java Chassis 3 | 3.1.0 | OpenJDK 17 | OpenJDK 17| 3.0.x| 依赖Spring Boot 3 | +| Java Chassis 3 | 3.1.1 | OpenJDK 17 | OpenJDK 17| 3.0.x| 依赖Spring Boot 3 | | Java Chassis 2 | 2.8.16 | OpenJDK 8 | OpenJDK 8, 11, 17 | 2.0.x| 依赖Spring 5 | | Java Chassis 1 | 1.3.11 | OpenJDK 8 | OpenJDK 8 | 2.0.x| 停止更新 | @@ -87,7 +85,7 @@ public class ConsumerController implements ConsumerService { [java-chassis-developer-guide]: https://servicecomb.apache.org/references/java-chassis/zh_CN/ -# 编译Java Chassis +# 编译 Java Chassis 开发者可以通过MAVEN仓库使用Java Chassis。 如果需要构建项目,需要使用JDK 17版本,并预先安装maven。
(servicecomb-fence) branch master updated (9558d04 -> 142d3d6)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a change to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-fence.git from 9558d04 configure ROOT and edge mapping add 142d3d6 make integration tests run No new revisions were added by this update. Summary of changes: README.md | 5 +- README_ZH.md | 7 +- .../src/main/resources/sql/user.sql| 4 +- build_and_run.bat | 3 - integration-tests/pom.xml | 15 +++ .../fence/AuthenticationClientMain.java| 2 + .../servicecomb/fence/edge/TokenResponse.java | 111 - .../fence/tests/AuthenticationTestCase.java| 131 - .../servicecomb/fence/tests/BootEventListener.java | 48 .../fence/tests/EndpointConfiguration.java | 76 +++- .../servicecomb/fence/tests/GateRestTemplate.java | 120 --- .../fence/tests/ITUriTemplateHandler.java | 44 --- .../{TestEndpoint.java => StartTestCasesBean.java} | 15 ++- .../apache/servicecomb/fence/tests/TestCase.java | 2 +- .../fence/tests/TokenExpireTestCase.java | 62 +- .../{microservice.yaml => application.yml} | 37 ++ .../src/main/resources/log4j2.xml | 2 +- integration-tests/src/main/resources/logback.xml | 79 - pom.xml| 4 +- .../fence/resource/AuthenticationAuthFilter.java | 2 +- .../resource/AuthenticationProviderFilter.java | 3 +- 21 files changed, 203 insertions(+), 569 deletions(-) delete mode 100644 integration-tests/src/main/java/org/apache/servicecomb/fence/edge/TokenResponse.java delete mode 100644 integration-tests/src/main/java/org/apache/servicecomb/fence/tests/BootEventListener.java delete mode 100644 integration-tests/src/main/java/org/apache/servicecomb/fence/tests/GateRestTemplate.java delete mode 100644 integration-tests/src/main/java/org/apache/servicecomb/fence/tests/ITUriTemplateHandler.java rename integration-tests/src/main/java/org/apache/servicecomb/fence/tests/{TestEndpoint.java => StartTestCasesBean.java} (80%) rename integration-tests/src/main/resources/{microservice.yaml => application.yml} (62%) copy {resource-server => integration-tests}/src/main/resources/log4j2.xml (97%) delete mode 100644 integration-tests/src/main/resources/logback.xml
(servicecomb-fence) branch master updated: configure ROOT and edge mapping
This is an automated email from the ASF dual-hosted git repository. liubao pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-fence.git The following commit(s) were added to refs/heads/master by this push: new 9558d04 configure ROOT and edge mapping 9558d04 is described below commit 9558d041d3d891e33c08dd3a03d56b3895da1712 Author: liubao AuthorDate: Wed May 15 10:37:52 2024 +0800 configure ROOT and edge mapping --- .../authentication/ThirdPartyProviderService.java | 2 +- .../fence/{ => api}/authentication/TokenService.java | 2 +- .../servicecomb/fence/{ => api}/edge/TokenResponse.java | 2 +- .../servicecomb/fence/{ => api}/edge/TokenService.java| 2 +- .../{resource/example => api/resource}/FileService.java | 2 +- .../example => api/resource}/HandlerAuthService.java | 2 +- .../example => api/resource}/PreMethodAuthService.java| 2 +- .../fence/authentication/ThirdPartyProviderEndpoint.java | 1 + .../servicecomb/fence/authentication/TokenEndpoint.java | 1 + authentication-server/src/main/resources/application.yml | 5 + edge-service/pom.xml | 4 .../org/apache/servicecomb/fence/edge/TokenEndpoint.java | 2 ++ edge-service/src/main/resources/application.yml | 15 +++ edge-service/src/main/resources/ui/js/login.js| 2 +- edge-service/src/main/resources/ui/js/operation.js| 8 resource-server/pom.xml | 4 .../fence/resource/{example => }/FileEndpoint.java| 3 ++- .../fence/resource/{example => }/FileStoreService.java| 2 +- .../fence/resource/{example => }/HandlerAuthEndpoint.java | 3 ++- .../resource/{example => }/LocalFileStoreService.java | 2 +- .../resource/{example => }/PreMethodAuthEndpoint.java | 3 ++- resource-server/src/main/resources/application.yml| 5 + 22 files changed, 45 insertions(+), 29 deletions(-) diff --git a/apis/authentication-server-api/src/main/java/org/apache/servicecomb/fence/authentication/ThirdPartyProviderService.java b/apis/authentication-server-api/src/main/java/org/apache/servicecomb/fence/api/authentication/ThirdPartyProviderService.java similarity index 96% rename from apis/authentication-server-api/src/main/java/org/apache/servicecomb/fence/authentication/ThirdPartyProviderService.java rename to apis/authentication-server-api/src/main/java/org/apache/servicecomb/fence/api/authentication/ThirdPartyProviderService.java index d00900d..967b2cc 100644 --- a/apis/authentication-server-api/src/main/java/org/apache/servicecomb/fence/authentication/ThirdPartyProviderService.java +++ b/apis/authentication-server-api/src/main/java/org/apache/servicecomb/fence/api/authentication/ThirdPartyProviderService.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.apache.servicecomb.fence.authentication; +package org.apache.servicecomb.fence.api.authentication; import org.springframework.web.bind.annotation.CookieValue; import org.springframework.web.bind.annotation.GetMapping; diff --git a/apis/authentication-server-api/src/main/java/org/apache/servicecomb/fence/authentication/TokenService.java b/apis/authentication-server-api/src/main/java/org/apache/servicecomb/fence/api/authentication/TokenService.java similarity index 96% rename from apis/authentication-server-api/src/main/java/org/apache/servicecomb/fence/authentication/TokenService.java rename to apis/authentication-server-api/src/main/java/org/apache/servicecomb/fence/api/authentication/TokenService.java index 9baf1bd..b8d7fb4 100644 --- a/apis/authentication-server-api/src/main/java/org/apache/servicecomb/fence/authentication/TokenService.java +++ b/apis/authentication-server-api/src/main/java/org/apache/servicecomb/fence/api/authentication/TokenService.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.apache.servicecomb.fence.authentication; +package org.apache.servicecomb.fence.api.authentication; import java.util.Map; diff --git a/apis/edge-service-api/src/main/java/org/apache/servicecomb/fence/edge/TokenResponse.java b/apis/edge-service-api/src/main/java/org/apache/servicecomb/fence/api/edge/TokenResponse.java similarity index 98% rename from apis/edge-service-api/src/main/java/org/apache/servicecomb/fence/edge/TokenResponse.java rename to apis/edge-service-api/src/main/java/org/apache/servicecomb/fence/api/edge/TokenResponse.java index 83eeac0..47dd695 100644 --- a/apis/edge-service-api/src/main/java/org/apache/servicecomb/fence/edge/TokenResponse.java +++ b/apis/edge-service-api/src/main/java/org/apache/servicecomb/fence/api/edge/TokenResponse.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.apache.servicecomb.fence.edge; +package org.apache.servicecomb.fence.api.edge; import java.util.Map;
(servicecomb-fence) branch master updated: extract apis
This is an automated email from the ASF dual-hosted git repository. liubao pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-fence.git The following commit(s) were added to refs/heads/master by this push: new 2941f80 extract apis 2941f80 is described below commit 2941f807946a1b25d6470e76cef42218bf7d32d4 Author: liubao AuthorDate: Tue May 14 20:49:37 2024 +0800 extract apis --- .../authentication-server-api}/pom.xml | 35 .../authentication/ThirdPartyProviderService.java | 14 +++- .../fence/authentication/TokenService.java | 11 +-- {resource-server => apis/edge-service-api}/pom.xml | 28 ++-- .../servicecomb/fence/edge/TokenResponse.java | 0 .../servicecomb/fence/edge/TokenService.java | 8 - apis/pom.xml | 37 ++ .../resource-server-api}/pom.xml | 32 ++- .../fence/resource/example/FileService.java| 20 +++- .../fence/resource/example/HandlerAuthService.java | 22 - .../resource/example/PreMethodAuthService.java | 22 - authentication-server/pom.xml | 5 +++ .../authentication/ThirdPartyProviderEndpoint.java | 16 ++ .../fence/authentication/TokenEndpoint.java| 14 ++-- edge-service/pom.xml | 5 +++ .../servicecomb/fence/edge/TokenEndpoint.java | 10 ++ integration-tests/pom.xml | 4 +++ .../fence/tests/EndpointConfiguration.java | 35 pom.xml| 3 +- resource-server/pom.xml| 5 +++ .../fence/resource/example/FileEndpoint.java | 31 +++--- .../fence/resource/example/FileStoreService.java | 5 ++- .../resource/example/HandlerAuthEndpoint.java | 15 - .../resource/example/PreMethodAuthEndpoint.java| 15 - 24 files changed, 164 insertions(+), 228 deletions(-) diff --git a/resource-server/pom.xml b/apis/authentication-server-api/pom.xml similarity index 68% copy from resource-server/pom.xml copy to apis/authentication-server-api/pom.xml index 62cc64f..a2be48a 100644 --- a/resource-server/pom.xml +++ b/apis/authentication-server-api/pom.xml @@ -15,46 +15,25 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd;> 4.0.0 - org.apache.servicecomb.fence -project-fence +fence-apis 0.0.1-SNAPSHOT - resource-server + authentication-server-api jar - -UTF-8 - - org.apache.servicecomb.fence fence-common ${project.version} - - org.apache.servicecomb - solution-basic - - - org.apache.servicecomb - java-chassis-spring-boot-starter-standalone - - - org.springframework.boot - spring-boot-autoconfigure - - - - -org.springframework.boot -spring-boot-maven-plugin - - - - + +UTF-8 + + + \ No newline at end of file diff --git a/authentication-server/src/main/java/org/apache/servicecomb/fence/authentication/ThirdPartyProviderService.java b/apis/authentication-server-api/src/main/java/org/apache/servicecomb/fence/authentication/ThirdPartyProviderService.java similarity index 56% rename from authentication-server/src/main/java/org/apache/servicecomb/fence/authentication/ThirdPartyProviderService.java rename to apis/authentication-server-api/src/main/java/org/apache/servicecomb/fence/authentication/ThirdPartyProviderService.java index 1f101ab..d00900d 100644 --- a/authentication-server/src/main/java/org/apache/servicecomb/fence/authentication/ThirdPartyProviderService.java +++ b/apis/authentication-server-api/src/main/java/org/apache/servicecomb/fence/authentication/ThirdPartyProviderService.java @@ -17,10 +17,22 @@ package org.apache.servicecomb.fence.authentication; +import org.springframework.web.bind.annotation.CookieValue; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; + /** * Connecting third party oAuth providers * */ +@RequestMapping(path = "/v1/thirdParty") public interface ThirdPartyProviderService { - String providerInfo(String provider, String redirectURI, String login, String scope, String initialState); + @GetMapping(path = "/providerInfo/{provider}") + String providerInfo(@PathVariable(name = "provider") String provider, + @RequestParam(name = "login", required = false) String login, + @RequestParam(name = "redirectURI") String redirectURI, +
(servicecomb-samples) branch master updated: upgrade version (#141)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-samples.git The following commit(s) were added to refs/heads/master by this push: new 409c697 upgrade version (#141) 409c697 is described below commit 409c697313f4f4498b7db4ec9532a4d3d7b423f1 Author: liubao68 AuthorDate: Tue May 14 19:11:53 2024 +0800 upgrade version (#141) --- basic/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/basic/pom.xml b/basic/pom.xml index 18290fb..a358be8 100644 --- a/basic/pom.xml +++ b/basic/pom.xml @@ -27,7 +27,7 @@ UTF-8 -3.1.0 +3.1.1 3.1.3 3.11.0
svn commit: r69155 - in /release/servicecomb/servicecomb-java-chassis: 3.1.0/ 3.1.1/
Author: liubao Date: Tue May 14 09:54:22 2024 New Revision: 69155 Log: release 3.1.1 Added: release/servicecomb/servicecomb-java-chassis/3.1.1/ release/servicecomb/servicecomb-java-chassis/3.1.1/apache-servicecomb-java-chassis-distribution-3.1.1-bin.zip (with props) release/servicecomb/servicecomb-java-chassis/3.1.1/apache-servicecomb-java-chassis-distribution-3.1.1-bin.zip.asc release/servicecomb/servicecomb-java-chassis/3.1.1/apache-servicecomb-java-chassis-distribution-3.1.1-bin.zip.sha512 release/servicecomb/servicecomb-java-chassis/3.1.1/apache-servicecomb-java-chassis-distribution-3.1.1-src.zip (with props) release/servicecomb/servicecomb-java-chassis/3.1.1/apache-servicecomb-java-chassis-distribution-3.1.1-src.zip.asc release/servicecomb/servicecomb-java-chassis/3.1.1/apache-servicecomb-java-chassis-distribution-3.1.1-src.zip.sha512 Removed: release/servicecomb/servicecomb-java-chassis/3.1.0/ Added: release/servicecomb/servicecomb-java-chassis/3.1.1/apache-servicecomb-java-chassis-distribution-3.1.1-bin.zip == Binary file - no diff available. Propchange: release/servicecomb/servicecomb-java-chassis/3.1.1/apache-servicecomb-java-chassis-distribution-3.1.1-bin.zip -- svn:mime-type = application/octet-stream Added: release/servicecomb/servicecomb-java-chassis/3.1.1/apache-servicecomb-java-chassis-distribution-3.1.1-bin.zip.asc == --- release/servicecomb/servicecomb-java-chassis/3.1.1/apache-servicecomb-java-chassis-distribution-3.1.1-bin.zip.asc (added) +++ release/servicecomb/servicecomb-java-chassis/3.1.1/apache-servicecomb-java-chassis-distribution-3.1.1-bin.zip.asc Tue May 14 09:54:22 2024 @@ -0,0 +1,16 @@ +-BEGIN PGP SIGNATURE- + +iQIzBAABCgAdFiEEgr9EsxMxTagaNq1NQCyw93alAPoFAmY/L90ACgkQQCyw93al +APrGfw//df9dvaEb26wofJNsG5jZtaA7RSerVByPUjK+62G71RH7FrPSDCunSpDH +cFPf8y3HMRWsJHwxD1l7aA9KE6HrujVR/8rFXEBc6Icsy/ixjFEbkOE9Avyc49Pb +5kJ23VeMmsqssNuHaw1CPGduO6wiSjzUgbLb5qT4wPjbOb+B1wL5Jhe++InyuxDU +dJnNAomunQfPVpjPq4i0BkzFoL2iGQGoCZgtcXLHZXK1lrbHqMrXLmpV3Bfuli5M +bnKupHXOexqkapT9fxwJ8Wknpa88LgvcvRm2m4xWEyGNqxVV+bEolb5iIIDliMAL +kmNZwnmWtaWN9ej7r2SvaiGR25xi008bPvANxQdegWTtgYEoHZrFMXAeGbspHZRU +eYHJkMlDuTLPw79TDEFa+xvVXu7vxSzDcGTZUjjzGSP6svvH4+rQ9cpl+ecP4OXh +ibkyqAQqkHhnPCzvXgxGi0RH50TGEAnIOpFufI7wwyAZHIpxX8Nk2yzlD1Z5Gsyb +p9xYaC38nOUSz5+FnT6E9FfI7hxHhCbmErDm1rithwF8L6R8zgrEq+1sFNonlw5y +GZpxyXdPfDIHDE0f6QChek+y37OhTAOYC2y1dasgIGvON6Is+LRfLbGfdMO5EJKd +2tsjno1ExctKf/286gSKg+ixyf6UqtQtsIT86NhyFS5AXdQokww= +=Kl3Q +-END PGP SIGNATURE- Added: release/servicecomb/servicecomb-java-chassis/3.1.1/apache-servicecomb-java-chassis-distribution-3.1.1-bin.zip.sha512 == --- release/servicecomb/servicecomb-java-chassis/3.1.1/apache-servicecomb-java-chassis-distribution-3.1.1-bin.zip.sha512 (added) +++ release/servicecomb/servicecomb-java-chassis/3.1.1/apache-servicecomb-java-chassis-distribution-3.1.1-bin.zip.sha512 Tue May 14 09:54:22 2024 @@ -0,0 +1 @@ +679886da0e0f066574bdba33de59ee285a901b7231d007f4a72a0d5ba29a21e8dc60bbe11bee93ed492ab20df1026234a7da0778113f710c74e429dd2dbf3b50 *apache-servicecomb-java-chassis-distribution-3.1.1-bin.zip Added: release/servicecomb/servicecomb-java-chassis/3.1.1/apache-servicecomb-java-chassis-distribution-3.1.1-src.zip == Binary file - no diff available. Propchange: release/servicecomb/servicecomb-java-chassis/3.1.1/apache-servicecomb-java-chassis-distribution-3.1.1-src.zip -- svn:mime-type = application/octet-stream Added: release/servicecomb/servicecomb-java-chassis/3.1.1/apache-servicecomb-java-chassis-distribution-3.1.1-src.zip.asc == --- release/servicecomb/servicecomb-java-chassis/3.1.1/apache-servicecomb-java-chassis-distribution-3.1.1-src.zip.asc (added) +++ release/servicecomb/servicecomb-java-chassis/3.1.1/apache-servicecomb-java-chassis-distribution-3.1.1-src.zip.asc Tue May 14 09:54:22 2024 @@ -0,0 +1,16 @@ +-BEGIN PGP SIGNATURE- + +iQIzBAABCgAdFiEEgr9EsxMxTagaNq1NQCyw93alAPoFAmY/L90ACgkQQCyw93al +APo7iQ//Z03sVjqUnK/lAvldcZf+PtrnwUTvH9KrVF9mWs+RHsm5EEacLziy1IGO +FVOSTJq0AcBA7UcMjN84RkcK+jKBmSFGRXQyUVP+skMp2mB1y1LehLqXf6+9mVlw +9CN7c1LNwU5zwwjYGJnKs2r7yRlmHHTuIj1pJH61sisCz/vGcvbhPebiNcDkLfvG +XhnLWuEQBAOEcGTeZE+lQTTMx5L4LN1MWIcEumIMFBrguOAR0nlZOCSy7JSMgUzN +vS1QjM4CI97A9hbDI5Kxcct4vFlSM+tI7tLb88/cB44Od8LoarN097IgIzezpDUi +Hp7iYlBTBMJ/aZckBs4z4zyStQq4rLUWpMFbF98RNKlXxlhcc2Z+Y+ROiYMJsNBp
(servicecomb-java-chassis) tag 3.1.1 created (now f99d3715e)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a change to tag 3.1.1 in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git at f99d3715e (commit) No new revisions were added by this update.
svn commit: r69103 - /dev/servicecomb/servicecomb-java-chassis/3.1.1/
Author: liubao Date: Sat May 11 08:47:45 2024 New Revision: 69103 Log: release 3.1.1 Modified: dev/servicecomb/servicecomb-java-chassis/3.1.1/apache-servicecomb-java-chassis-distribution-3.1.1-bin.zip dev/servicecomb/servicecomb-java-chassis/3.1.1/apache-servicecomb-java-chassis-distribution-3.1.1-bin.zip.asc dev/servicecomb/servicecomb-java-chassis/3.1.1/apache-servicecomb-java-chassis-distribution-3.1.1-bin.zip.sha512 dev/servicecomb/servicecomb-java-chassis/3.1.1/apache-servicecomb-java-chassis-distribution-3.1.1-src.zip dev/servicecomb/servicecomb-java-chassis/3.1.1/apache-servicecomb-java-chassis-distribution-3.1.1-src.zip.asc dev/servicecomb/servicecomb-java-chassis/3.1.1/apache-servicecomb-java-chassis-distribution-3.1.1-src.zip.sha512 Modified: dev/servicecomb/servicecomb-java-chassis/3.1.1/apache-servicecomb-java-chassis-distribution-3.1.1-bin.zip == Binary files - no diff available. Modified: dev/servicecomb/servicecomb-java-chassis/3.1.1/apache-servicecomb-java-chassis-distribution-3.1.1-bin.zip.asc == --- dev/servicecomb/servicecomb-java-chassis/3.1.1/apache-servicecomb-java-chassis-distribution-3.1.1-bin.zip.asc (original) +++ dev/servicecomb/servicecomb-java-chassis/3.1.1/apache-servicecomb-java-chassis-distribution-3.1.1-bin.zip.asc Sat May 11 08:47:45 2024 @@ -1,16 +1,16 @@ -BEGIN PGP SIGNATURE- -iQIzBAABCgAdFiEEgr9EsxMxTagaNq1NQCyw93alAPoFAmY+3fcACgkQQCyw93al -APr95xAAhpMrSyrlez9NP3bLZqOJ7aU2DFxOldcmCqdIkUDY7zKHIG1nbGOmDoVZ -ieQx1bN715lMvRUQIAluIppyaTy4mL9SurHg4PnGQGRT6fnEZRLXB5GVR9X0EpTm -NTnbk+Qgp8fg7dvdJl8gctxnUWV9DT66fM7DJkUz8YE4tYVg3mfXuVwN2zWL1ZIa -2a52BCxarEpB6XKICF0GcNcoADV/zGoWTtDILzXPijBSBlTitFQ0w+y7gIW7lhwV -uljQ/yJ7U+wR8pnhhwebUje0Vj+jQ53dsbGjPX/KpAcJCZ+eHqWb0Tz6mKg+EZUK -gF9JcotdH6kMX/wdzC5x+RJsjuES0TWGN2OeMHA2MKdSIV36GXlUKaLmNgWw4Xp3 -b9B9OMyUamuQOmOQsHLP1vcCg+ptUylNGCef5e0QoeJtfen2ReAZYOe1oLdzLcRI -0/DbdqzBtkJkvIZdyG846irajAKzwcXf0JmRzdZlbb17+zY0H7a8Cdj+DF+4AFTd -G2iOlJptYk6wB69eg85cdlD/Or5F0ogA7mtDy6CdF4r2jqJAXop4gvn0OY6ZyrPW -9yWHkjepSx5uVjdgYMiTVnG8OeCC06uGqxUTjlyrP/UcsgrY7io7n4S8sfyCEAqE -J3XAVmdKaGGiVBibsa58OKTnPjmSNZBENJ3tLKJyFc97dYxUQzA= -=JXuH +iQIzBAABCgAdFiEEgr9EsxMxTagaNq1NQCyw93alAPoFAmY/L90ACgkQQCyw93al +APrGfw//df9dvaEb26wofJNsG5jZtaA7RSerVByPUjK+62G71RH7FrPSDCunSpDH +cFPf8y3HMRWsJHwxD1l7aA9KE6HrujVR/8rFXEBc6Icsy/ixjFEbkOE9Avyc49Pb +5kJ23VeMmsqssNuHaw1CPGduO6wiSjzUgbLb5qT4wPjbOb+B1wL5Jhe++InyuxDU +dJnNAomunQfPVpjPq4i0BkzFoL2iGQGoCZgtcXLHZXK1lrbHqMrXLmpV3Bfuli5M +bnKupHXOexqkapT9fxwJ8Wknpa88LgvcvRm2m4xWEyGNqxVV+bEolb5iIIDliMAL +kmNZwnmWtaWN9ej7r2SvaiGR25xi008bPvANxQdegWTtgYEoHZrFMXAeGbspHZRU +eYHJkMlDuTLPw79TDEFa+xvVXu7vxSzDcGTZUjjzGSP6svvH4+rQ9cpl+ecP4OXh +ibkyqAQqkHhnPCzvXgxGi0RH50TGEAnIOpFufI7wwyAZHIpxX8Nk2yzlD1Z5Gsyb +p9xYaC38nOUSz5+FnT6E9FfI7hxHhCbmErDm1rithwF8L6R8zgrEq+1sFNonlw5y +GZpxyXdPfDIHDE0f6QChek+y37OhTAOYC2y1dasgIGvON6Is+LRfLbGfdMO5EJKd +2tsjno1ExctKf/286gSKg+ixyf6UqtQtsIT86NhyFS5AXdQokww= +=Kl3Q -END PGP SIGNATURE- Modified: dev/servicecomb/servicecomb-java-chassis/3.1.1/apache-servicecomb-java-chassis-distribution-3.1.1-bin.zip.sha512 == --- dev/servicecomb/servicecomb-java-chassis/3.1.1/apache-servicecomb-java-chassis-distribution-3.1.1-bin.zip.sha512 (original) +++ dev/servicecomb/servicecomb-java-chassis/3.1.1/apache-servicecomb-java-chassis-distribution-3.1.1-bin.zip.sha512 Sat May 11 08:47:45 2024 @@ -1 +1 @@ -83a35725c3a3ad1891a49d745cbdd49e0ef5ee0acbef56fa7d641da4a32e90c4dbb7f85161d212250ec495fa0b626da14458628a63bc0a4ddc6d319e5797c5f1 *apache-servicecomb-java-chassis-distribution-3.1.1-bin.zip +679886da0e0f066574bdba33de59ee285a901b7231d007f4a72a0d5ba29a21e8dc60bbe11bee93ed492ab20df1026234a7da0778113f710c74e429dd2dbf3b50 *apache-servicecomb-java-chassis-distribution-3.1.1-bin.zip Modified: dev/servicecomb/servicecomb-java-chassis/3.1.1/apache-servicecomb-java-chassis-distribution-3.1.1-src.zip == Binary files - no diff available. Modified: dev/servicecomb/servicecomb-java-chassis/3.1.1/apache-servicecomb-java-chassis-distribution-3.1.1-src.zip.asc == --- dev/servicecomb/servicecomb-java-chassis/3.1.1/apache-servicecomb-java-chassis-distribution-3.1.1-src.zip.asc (original) +++ dev/servicecomb/servicecomb-java-chassis/3.1.1/apache-servicecomb-java-chassis-distribution-3.1.1-src.zip.asc Sat May 11 08:47:45 2024 @@ -1,16 +1,16 @@ -BEGIN PGP SIGNATURE- -iQIzBAABCgAdFiEEgr9EsxMxTagaNq1NQCyw93alAPoFAmY+3fgACgkQQCyw93al -APrdYRAAhAXYi11jI8DV6s6tWBUc3rtIZ4OBnA6qgTKi2x6b05reCNAbn7Ysq/js -N3eARM5RzjhDFLe5Z4C1Fxl8Eu5al3W9+IU/ZwAo7axMEYaF4poIdYmf9UQgeral -GpcjQLM7Iswesld5ahnID0sRc013O2
(servicecomb-java-chassis) branch master updated: [#4334]fix invocation arguments not same with swagger arguments problem (#4335)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git The following commit(s) were added to refs/heads/master by this push: new f99d3715e [#4334]fix invocation arguments not same with swagger arguments problem (#4335) f99d3715e is described below commit f99d3715eba3eebffd0306aa0df113e25b11b92b Author: liubao68 AuthorDate: Sat May 11 16:19:20 2024 +0800 [#4334]fix invocation arguments not same with swagger arguments problem (#4335) --- .../demo/springmvc/SpringmvcClient.java| 14 +- .../demo/springmvc/client/TestThirdSvc.java| 55 ++ .../demo/springmvc/client/ThirdSvc.java| 9 .../demo/springmvc/server/CodeFirstSpringmvc.java | 9 .../consumer/ConsumerArgumentsMapperCreator.java | 3 +- .../arguments/consumer/TestJaxrsV2V2.java | 4 +- .../arguments/consumer/TestSpringmvcV2V2.java | 8 ++-- 7 files changed, 82 insertions(+), 20 deletions(-) diff --git a/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/SpringmvcClient.java b/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/SpringmvcClient.java index 849fd56a1..74293a6f3 100644 --- a/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/SpringmvcClient.java +++ b/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/SpringmvcClient.java @@ -17,7 +17,6 @@ package org.apache.servicecomb.demo.springmvc; -import java.util.Date; import java.util.HashMap; import java.util.Map; @@ -29,7 +28,6 @@ import org.apache.servicecomb.demo.TestMgr; import org.apache.servicecomb.demo.controller.Controller; import org.apache.servicecomb.demo.controller.Person; import org.apache.servicecomb.demo.springmvc.client.CodeFirstRestTemplateSpringmvc; -import org.apache.servicecomb.demo.springmvc.client.ThirdSvc.ThirdSvcClient; import org.apache.servicecomb.foundation.common.LegacyPropertyFactory; import org.apache.servicecomb.foundation.common.utils.BeanUtils; import org.apache.servicecomb.foundation.vertx.client.http.HttpClients; @@ -80,7 +78,7 @@ public class SpringmvcClient { LOGGER.error("-- test failed -"); } TestMgr.summary(); -LOGGER.info("-- last time updated checks(maybe more/less): 1341 -"); +LOGGER.info("-- last time updated checks(maybe more/less): 1344 -"); } private static void changeTransport(String microserviceName, String transport) { @@ -218,18 +216,9 @@ public class SpringmvcClient { testController(); testSpringMvcDefaultValuesAllTransport(templateUrlWithServiceName, microserviceName); testSpringMvcDefaultValuesJavaPrimitiveAllTransport(templateUrlWithServiceName, microserviceName); - testThirdService(); } } - private static void testThirdService() { -ThirdSvcClient client = BeanUtils.getContext().getBean(ThirdSvcClient.class); - -Date date = new Date(); -ResponseEntity responseEntity = client.responseEntity(date); -TestMgr.check(date, responseEntity.getBody()); - } - private static void testControllerRest(RestTemplate template, String microserviceName) { String prefix = "cse://" + microserviceName; @@ -340,7 +329,6 @@ public class SpringmvcClient { } - private static void testSpringMvcDefaultValuesRest(RestTemplate template, String microserviceName) { String cseUrlPrefix = "cse://" + microserviceName + "/SpringMvcDefaultValues/"; String result = template.getForObject(cseUrlPrefix + "/query?d=10", String.class); diff --git a/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/TestThirdSvc.java b/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/TestThirdSvc.java new file mode 100644 index 0..98592c9bc --- /dev/null +++ b/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/TestThirdSvc.java @@ -0,0 +1,55 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WI
(servicecomb-java-chassis) tag 3.1.1 deleted (was ba06fef1c)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a change to tag 3.1.1 in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git *** WARNING: tag 3.1.1 was deleted! *** was ba06fef1c [SCB-2878]operation based load balancer (#4332) The revisions that were on this tag are still contained in other references; therefore, this change does not discard any commits from the repository.
(servicecomb-java-chassis) tag 3.1.1 created (now ba06fef1c)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a change to tag 3.1.1 in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git at ba06fef1c (commit) No new revisions were added by this update.
(servicecomb-docs) branch master updated: fix public key auth (#337)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-docs.git The following commit(s) were added to refs/heads/master by this push: new a64a7b9 fix public key auth (#337) a64a7b9 is described below commit a64a7b9e2961a5ad63011e1187be913729cd67a3 Author: liubao68 AuthorDate: Sat May 11 11:29:28 2024 +0800 fix public key auth (#337) --- .../{references-handlers => security}/publickey.md | 47 +++- .../zh_CN/docs/security/shi-yong-rsa-ren-zheng.md | 50 -- .../docs/security/tls/shi-yong-rsa-ren-zheng.md| 0 java-chassis-reference/zh_CN/mkdocs.yml| 3 +- 4 files changed, 37 insertions(+), 63 deletions(-) diff --git a/java-chassis-reference/zh_CN/docs/references-handlers/publickey.md b/java-chassis-reference/zh_CN/docs/security/publickey.md similarity index 50% rename from java-chassis-reference/zh_CN/docs/references-handlers/publickey.md rename to java-chassis-reference/zh_CN/docs/security/publickey.md index 1a754fb..5e9c260 100644 --- a/java-chassis-reference/zh_CN/docs/references-handlers/publickey.md +++ b/java-chassis-reference/zh_CN/docs/security/publickey.md @@ -1,16 +1,42 @@ -# 公钥认证 +# 微服务间认证 ## 场景描述 -公钥认证是ServiceComb提供的一种简单高效的微服务之间认证机制,它的安全性建立在微服务与服务中心之间的交互是可信的基础之上,即微服务和服务中心之间必须先启用认证机制。它的基本流程如下: +微服务间认证是 `Java Chassis` 提供的一种简单高效的微服务之间认证机制,它的安全性建立在微服务与注册中心之间的交互是可信的基础之上,即微服务和注册中心之间必须先启用认证机制。它的基本流程如下: -1. 微服务启动的时候,生成秘钥对,并将公钥注册到服务中心。 +1. 微服务启动的时候,生成秘钥对,并将公钥注册到注册中心。 2. 消费者访问提供者之前,使用自己的私钥对消息进行签名。 -3. 提供者从服务中心获取消费者公钥,对签名的消息进行校验。 +3. 提供者从注册中心获取消费者公钥,对签名的消息进行校验。 -## 配置黑白名单 +## 启用微服务间认证功能 -基于公钥认证机制,ServiceComb提供了黑白名单功能。通过黑白名单,可以控制微服务允许其他哪些服务访问。目前支持通过配置服务属性来控制,配置项如下: +微服务间认证需要同时在消费者和提供者启用公钥认证(如果已经间接引入依赖,则无需添加)。 + +* 消费者配置 + +在pom.xml中增加依赖: + +``` + + org.apache.servicecomb + handler-publickey-auth + +``` + +* 提供者配置 + +在pom.xml中增加依赖: + +``` + + org.apache.servicecomb + handler-publickey-auth + +``` + +## 配置认证规则(黑白名单) + +基于公钥认证机制, `Java Chassis` 提供了黑白名单功能。通过黑白名单,可以控制微服务允许其他哪些服务访问。目前支持通过配置服务属性来控制,配置项如下: ``` servicecomb: @@ -23,9 +49,9 @@ servicecomb: list01: category: property ## property, fixed value propertyName: serviceName ## property name -# property value match expression. -# only supports prefix match and postfix match and exactly match. -# e.g. hacker*, *hacker, hacker + # property value match expression. + # only supports prefix match and postfix match and exactly match. + # e.g. hacker*, *hacker, hacker rule: hacker white: list02: @@ -44,6 +70,5 @@ includePathPatterns、excludePathPatterns规则设置支持前缀(xxx/)、后缀 2、excludePathPatterns未满足条件,再判断includePathPatterns是否设置规则,如果未设置则所有请求均需要进行鉴权;如果有设置规则,则判断当前请求path是否能够匹配设置规则,如果匹配则需要鉴权,如果不匹配则不需要鉴权。 -微服务黑名单判断规则:不允许微服务名称为hacker的访问;白名单,允许微服务名称为cust前缀的服务访问。 +微服务黑名单判断规则:不允许微服务名称为hacker的访问;白名单,允许微服务名称为 `cust` 前缀的服务访问。 -ServiceComb提供了[trust-sample](https://github.com/apache/servicecomb-samples/tree/master/java-chassis-samples/trust-sample)来演示黑白名单功能。 diff --git a/java-chassis-reference/zh_CN/docs/security/shi-yong-rsa-ren-zheng.md b/java-chassis-reference/zh_CN/docs/security/shi-yong-rsa-ren-zheng.md deleted file mode 100644 index 0e60c0d..000 --- a/java-chassis-reference/zh_CN/docs/security/shi-yong-rsa-ren-zheng.md +++ /dev/null @@ -1,50 +0,0 @@ -## 场景描述 - -用户通过简单的配置即可启用服务间RSA认证,以保障服务接口的安全性。 - -详细介绍参考[公钥认证](../references-handlers/publickey.md) - -## Consumer配置 - -* 在pom.xml中增加依赖: - -``` - - org.apache.servicecomb - handler-publickey-auth - -``` - -* 在microservice.yaml中添加进处理链 - -``` -servicecomb: - handler: -chain: - Consumer: -default: auth-consumer -``` - -## Provider配置 - -* 在pom.xml中增加依赖: - -``` - - org.apache.servicecomb - handler-publickey-auth - -``` - -* 在microservice.yaml中添加进处理链 - -``` -servicecomb: - handler: -chain: - Provider: -default: auth-provider -``` - - - diff --git a/java-chassis-reference/zh_CN/docs/security/tls/shi-yong-rsa-ren-zheng.md b/java-chassis-reference/zh_CN/docs/security/tls/shi-yong-rsa-ren-zheng.md deleted file mode 100644 index e69de29..000 diff --git a/java-chassis-reference/zh_CN/mkdocs.yml b/java-chassis-reference/zh_CN/mkdocs.yml index ddc42ab..ef5091e 100644 --- a/java-chassis-reference/zh_CN/mkdocs.yml +++ b/java-chassis-reference/zh_CN/mkdocs.yml @@ -98,9 +98,8 @@ nav: - 使用 `zuul` 和 `spring cloud gateway` 做网关: edge/zuul.md - nginx 网关简单介绍: edge/nginx.md - 安全特性参考: -- 公钥认证: references-handlers/publickey.md +- 微服务间认证: security/publickey.md - 使用TLS通信: security/tls.md -- 使用RSA认证: security/shi-yong-rsa-ren-zheng.md - 专题文章: - 特性介绍: featured-topics/features.md - 技术解密: featured-topics/secrets.md
svn commit: r69096 - in /dev/servicecomb/servicecomb-java-chassis: 3.1.0/ 3.1.1/
Author: liubao Date: Sat May 11 03:01:11 2024 New Revision: 69096 Log: release 3.1.1 Added: dev/servicecomb/servicecomb-java-chassis/3.1.1/ dev/servicecomb/servicecomb-java-chassis/3.1.1/apache-servicecomb-java-chassis-distribution-3.1.1-bin.zip (with props) dev/servicecomb/servicecomb-java-chassis/3.1.1/apache-servicecomb-java-chassis-distribution-3.1.1-bin.zip.asc dev/servicecomb/servicecomb-java-chassis/3.1.1/apache-servicecomb-java-chassis-distribution-3.1.1-bin.zip.sha512 dev/servicecomb/servicecomb-java-chassis/3.1.1/apache-servicecomb-java-chassis-distribution-3.1.1-src.zip (with props) dev/servicecomb/servicecomb-java-chassis/3.1.1/apache-servicecomb-java-chassis-distribution-3.1.1-src.zip.asc dev/servicecomb/servicecomb-java-chassis/3.1.1/apache-servicecomb-java-chassis-distribution-3.1.1-src.zip.sha512 Removed: dev/servicecomb/servicecomb-java-chassis/3.1.0/ Added: dev/servicecomb/servicecomb-java-chassis/3.1.1/apache-servicecomb-java-chassis-distribution-3.1.1-bin.zip == Binary file - no diff available. Propchange: dev/servicecomb/servicecomb-java-chassis/3.1.1/apache-servicecomb-java-chassis-distribution-3.1.1-bin.zip -- svn:mime-type = application/octet-stream Added: dev/servicecomb/servicecomb-java-chassis/3.1.1/apache-servicecomb-java-chassis-distribution-3.1.1-bin.zip.asc == --- dev/servicecomb/servicecomb-java-chassis/3.1.1/apache-servicecomb-java-chassis-distribution-3.1.1-bin.zip.asc (added) +++ dev/servicecomb/servicecomb-java-chassis/3.1.1/apache-servicecomb-java-chassis-distribution-3.1.1-bin.zip.asc Sat May 11 03:01:11 2024 @@ -0,0 +1,16 @@ +-BEGIN PGP SIGNATURE- + +iQIzBAABCgAdFiEEgr9EsxMxTagaNq1NQCyw93alAPoFAmY+3fcACgkQQCyw93al +APr95xAAhpMrSyrlez9NP3bLZqOJ7aU2DFxOldcmCqdIkUDY7zKHIG1nbGOmDoVZ +ieQx1bN715lMvRUQIAluIppyaTy4mL9SurHg4PnGQGRT6fnEZRLXB5GVR9X0EpTm +NTnbk+Qgp8fg7dvdJl8gctxnUWV9DT66fM7DJkUz8YE4tYVg3mfXuVwN2zWL1ZIa +2a52BCxarEpB6XKICF0GcNcoADV/zGoWTtDILzXPijBSBlTitFQ0w+y7gIW7lhwV +uljQ/yJ7U+wR8pnhhwebUje0Vj+jQ53dsbGjPX/KpAcJCZ+eHqWb0Tz6mKg+EZUK +gF9JcotdH6kMX/wdzC5x+RJsjuES0TWGN2OeMHA2MKdSIV36GXlUKaLmNgWw4Xp3 +b9B9OMyUamuQOmOQsHLP1vcCg+ptUylNGCef5e0QoeJtfen2ReAZYOe1oLdzLcRI +0/DbdqzBtkJkvIZdyG846irajAKzwcXf0JmRzdZlbb17+zY0H7a8Cdj+DF+4AFTd +G2iOlJptYk6wB69eg85cdlD/Or5F0ogA7mtDy6CdF4r2jqJAXop4gvn0OY6ZyrPW +9yWHkjepSx5uVjdgYMiTVnG8OeCC06uGqxUTjlyrP/UcsgrY7io7n4S8sfyCEAqE +J3XAVmdKaGGiVBibsa58OKTnPjmSNZBENJ3tLKJyFc97dYxUQzA= +=JXuH +-END PGP SIGNATURE- Added: dev/servicecomb/servicecomb-java-chassis/3.1.1/apache-servicecomb-java-chassis-distribution-3.1.1-bin.zip.sha512 == --- dev/servicecomb/servicecomb-java-chassis/3.1.1/apache-servicecomb-java-chassis-distribution-3.1.1-bin.zip.sha512 (added) +++ dev/servicecomb/servicecomb-java-chassis/3.1.1/apache-servicecomb-java-chassis-distribution-3.1.1-bin.zip.sha512 Sat May 11 03:01:11 2024 @@ -0,0 +1 @@ +83a35725c3a3ad1891a49d745cbdd49e0ef5ee0acbef56fa7d641da4a32e90c4dbb7f85161d212250ec495fa0b626da14458628a63bc0a4ddc6d319e5797c5f1 *apache-servicecomb-java-chassis-distribution-3.1.1-bin.zip Added: dev/servicecomb/servicecomb-java-chassis/3.1.1/apache-servicecomb-java-chassis-distribution-3.1.1-src.zip == Binary file - no diff available. Propchange: dev/servicecomb/servicecomb-java-chassis/3.1.1/apache-servicecomb-java-chassis-distribution-3.1.1-src.zip -- svn:mime-type = application/octet-stream Added: dev/servicecomb/servicecomb-java-chassis/3.1.1/apache-servicecomb-java-chassis-distribution-3.1.1-src.zip.asc == --- dev/servicecomb/servicecomb-java-chassis/3.1.1/apache-servicecomb-java-chassis-distribution-3.1.1-src.zip.asc (added) +++ dev/servicecomb/servicecomb-java-chassis/3.1.1/apache-servicecomb-java-chassis-distribution-3.1.1-src.zip.asc Sat May 11 03:01:11 2024 @@ -0,0 +1,16 @@ +-BEGIN PGP SIGNATURE- + +iQIzBAABCgAdFiEEgr9EsxMxTagaNq1NQCyw93alAPoFAmY+3fgACgkQQCyw93al +APrdYRAAhAXYi11jI8DV6s6tWBUc3rtIZ4OBnA6qgTKi2x6b05reCNAbn7Ysq/js +N3eARM5RzjhDFLe5Z4C1Fxl8Eu5al3W9+IU/ZwAo7axMEYaF4poIdYmf9UQgeral +GpcjQLM7Iswesld5ahnID0sRc013O2/aIyFrU9lfERLsWXBxl4WIbM/CUsPpoozt +/6BqHy6KWbaN+1aRiDMnCeXt3nO0eqPsc/1YOJIGaAJtm0w6lNPRI3pIWd1EDLv0 +7HLt02UzDaTiXLbZYm68iyoBc7yRYG46PbvOuS8O/4XLrY8871g8R4/8owspPRLn +BmTUbhlQlWcoWpMu+vQ3Pk+oLrggvqT0q4Vsyslq4pOQHwlqPHN1CvToStWxNFeu +sWJvC4jwBwHGgObCb8tlPcxz6IuvHvCQvCa+q5P9p9vPYlCunyqO+R9tHMn24Uhl +zc/9fbS5xPpZi4PYaJt+qWlxg93FNuva5s9WvXfGCcGTwJrj/gtzr3zOZ9IU5Fai +st9
(servicecomb-java-chassis) branch master updated: [SCB-2878]operation based load balancer (#4332)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git The following commit(s) were added to refs/heads/master by this push: new ba06fef1c [SCB-2878]operation based load balancer (#4332) ba06fef1c is described below commit ba06fef1c8e20c11beee33cf41955752db921719 Author: liubao68 AuthorDate: Fri May 10 14:49:48 2024 +0800 [SCB-2878]operation based load balancer (#4332) --- .../servicecomb/core/NonSwaggerInvocation.java | 4 +- .../registry/discovery/DiscoveryTree.java | 10 +- .../servicecomb/loadbalance/Configuration.java | 142 + .../servicecomb/loadbalance/ExtensionsFactory.java | 4 - .../servicecomb/loadbalance/ExtensionsManager.java | 14 +- .../servicecomb/loadbalance/LoadBalanceFilter.java | 51 +--- .../loadbalance/TestExtensionsManager.java | 13 +- 7 files changed, 84 insertions(+), 154 deletions(-) diff --git a/core/src/main/java/org/apache/servicecomb/core/NonSwaggerInvocation.java b/core/src/main/java/org/apache/servicecomb/core/NonSwaggerInvocation.java index d1f97d77c..e7f903e75 100644 --- a/core/src/main/java/org/apache/servicecomb/core/NonSwaggerInvocation.java +++ b/core/src/main/java/org/apache/servicecomb/core/NonSwaggerInvocation.java @@ -29,12 +29,12 @@ public class NonSwaggerInvocation extends Invocation { @Override public String getSchemaId() { -throw new UnsupportedOperationException(); +return "third-schema"; } @Override public String getOperationName() { -throw new UnsupportedOperationException(); +return "third-operation"; } @Override diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/discovery/DiscoveryTree.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/discovery/DiscoveryTree.java index d040cf447..c7b70f606 100644 --- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/discovery/DiscoveryTree.java +++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/discovery/DiscoveryTree.java @@ -92,10 +92,14 @@ public class DiscoveryTree { } private void log() { +StringBuilder sb = new StringBuilder(); +sb.append("DiscoveryFilters(name, enabled, order, group):"); for (DiscoveryFilter filter : filters) { - LOGGER.info("DiscoveryFilter {}, enabled {}, order {}.", - filter.getClass().getName(), filter.enabled(), filter.getOrder()); + sb.append("(").append(filter.getClass().getName()).append(",") + .append(filter.enabled()).append(",").append(filter.getOrder()).append(",") + .append(filter.isGroupingFilter()).append(")"); } +LOGGER.info(sb.toString()); } boolean isMatch(VersionedCache existing, VersionedCache inputCache) { @@ -181,7 +185,7 @@ public class DiscoveryTree { } // no rerun support, go on even result is empty -// because maybe some filter use other mechanism to create a instance(eg:domain name) +// because maybe some filter use other mechanism to create an instance(eg:domain name) } parent = child; diff --git a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/Configuration.java b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/Configuration.java index 61f7a2eee..e7dabe3d5 100644 --- a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/Configuration.java +++ b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/Configuration.java @@ -20,6 +20,7 @@ package org.apache.servicecomb.loadbalance; import java.util.Map; import org.apache.servicecomb.config.ConfigUtil; +import org.apache.servicecomb.core.Invocation; import org.apache.servicecomb.foundation.common.LegacyPropertyFactory; /** @@ -30,55 +31,62 @@ public final class Configuration { 2.1 configuration items public static final String ROOT = "servicecomb.loadbalance."; - public static final String SERVER_EXPIRED_IN_SECONDS = "servicecomb.loadbalance.stats.serverExpiredInSeconds"; - - public static final String TIMER_INTERVAL_IN_MILLIS = "servicecomb.loadbalance.stats.timerIntervalInMillis"; + public static final String RULE_STRATEGY_GLOBAL = "servicecomb.loadbalance.strategy.name"; public static final String RULE_STRATEGY_NAME = "strategy.name"; // 2.0 configuration items public static final String ROOT_20 = "ribbon."; - // retry configurations - public static final String RETRY_HANDLER = "retryHandler"; - // SessionStickinessRule configruation public static final String SESSION_TIMEOUT_IN_SEC
(servicecomb-fence) 02/03: update to 3.x part2: spring boot
This is an automated email from the ASF dual-hosted git repository. liubao pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-fence.git commit af8fe1e691d93f07942aa55ee3ded3347d80d8b9 Author: liubao AuthorDate: Thu May 9 15:32:50 2024 +0800 update to 3.x part2: spring boot --- authentication-server/pom.xml | 8 +-- .../fence/authentication/TokenEndpoint.java| 2 +- .../fence/authentication/user/TokenMapper.java | 21 -- .../fence/authentication/user/UserMapper.java | 17 + .../META-INF/spring/authentication.server.bean.xml | 46 - .../{microservice.yaml => application.yml} | 44 ++-- .../src/main/resources/config/TokenMapper.xml | 35 -- .../src/main/resources/config/UserMapper.xml | 47 - .../src/main/resources/config/mybatis-config.xml | 22 -- .../src/main/resources/log4j2.xml | 71 +++ .../src/main/resources/logback.xml | 79 -- .../src/main/resources/sql/user.sql| 2 +- .../fence/edge/AuthenticationConfiguration.java| 10 +++ ...hHandler.java => AuthenticationEdgeFilter.java} | 20 +- .../fence/edge/AuthenticationFilter.java | 57 .../edge/AuthenticationServerTokenEndpoint.java| 6 +- ...sHandler.java => InternalAccessEdgeFilter.java} | 7 +- .../servicecomb/fence/edge/TokenEndpoint.java | 2 +- ...servicecomb.common.rest.filter.HttpServerFilter | 18 - .../{microservice.yaml => application.yml} | 47 - .../src/main/resources/config/cse.handler.xml | 23 --- edge-service/src/main/resources/log4j2.xml | 71 +++ edge-service/src/main/resources/logback.xml| 79 -- pom.xml| 37 +++--- ...> AccessDeniedExceptionExceptionConverter.java} | 21 +++--- .../fence/resource/AccessDynamicProperties.java| 2 +- .../fence/resource/AuthFiltersBean.java| 41 --- .../resource/AuthenticationConfiguration.java | 6 +- ...dler.java => AuthenticationProviderFilter.java} | 18 +++-- ...ava => ConfigBasedAuthorizationAuthFilter.java} | 4 +- servicecomb.core.exception.ExceptionConverter} | 2 +- .../{microservice.yaml => application.yml} | 47 + .../src/main/resources/config/cse.handler.xml | 21 -- resource-server/src/main/resources/log4j2.xml | 71 +++ resource-server/src/main/resources/logback.xml | 79 -- 35 files changed, 395 insertions(+), 688 deletions(-) diff --git a/authentication-server/pom.xml b/authentication-server/pom.xml index b09bf40..a2cce8a 100644 --- a/authentication-server/pom.xml +++ b/authentication-server/pom.xml @@ -50,10 +50,6 @@ org.apache.servicecomb registry-local - - org.mybatis - mybatis - mysql mysql-connector-java @@ -63,8 +59,8 @@ commons-dbcp2 - org.mybatis - mybatis-spring + org.mybatis.spring.boot + mybatis-spring-boot-starter org.springframework diff --git a/authentication-server/src/main/java/org/apache/servicecomb/fence/authentication/TokenEndpoint.java b/authentication-server/src/main/java/org/apache/servicecomb/fence/authentication/TokenEndpoint.java index b4734f8..ed66944 100644 --- a/authentication-server/src/main/java/org/apache/servicecomb/fence/authentication/TokenEndpoint.java +++ b/authentication-server/src/main/java/org/apache/servicecomb/fence/authentication/TokenEndpoint.java @@ -48,7 +48,7 @@ public class TokenEndpoint implements TokenService { private OpenIDTokenStore store; @Override - @PostMapping(path = "/", consumes = MediaType.APPLICATION_FORM_URLENCODED) + @PostMapping(path = "/", consumes = MediaType.APPLICATION_JSON) public OpenIDToken grantToken(@RequestBody Map parameters) { String grantType = parameters.get(AuthenticationServerConstants.PARAM_GRANT_TYPE); diff --git a/authentication-server/src/main/java/org/apache/servicecomb/fence/authentication/user/TokenMapper.java b/authentication-server/src/main/java/org/apache/servicecomb/fence/authentication/user/TokenMapper.java index 6a32f9c..1742f36 100644 --- a/authentication-server/src/main/java/org/apache/servicecomb/fence/authentication/user/TokenMapper.java +++ b/authentication-server/src/main/java/org/apache/servicecomb/fence/authentication/user/TokenMapper.java @@ -17,16 +17,27 @@ package org.apache.servicecomb.fence.authentication.user; +import org.apache.ibatis.annotations.Insert; +import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; +@Mapper public interface TokenMapper { - public void i
(servicecomb-fence) 03/03: fix not response when auth fail
This is an automated email from the ASF dual-hosted git repository. liubao pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-fence.git commit a893f8808b39605b855847e75c5770570ac7fd03 Author: liubao AuthorDate: Fri May 10 10:59:09 2024 +0800 fix not response when auth fail --- README_ZH.md | 2 +- .../java/org/apache/servicecomb/fence/edge/TokenEndpoint.java| 9 + 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/README_ZH.md b/README_ZH.md index 831c8f9..9109615 100644 --- a/README_ZH.md +++ b/README_ZH.md @@ -29,7 +29,7 @@ build_and_run.bat * 使用演示界面 -进入页面,使用admin/changeMyPassword登录 +进入页面,使用 `admin/changeMyPassword` 登录 ``` http://localhost:9090/ui/login.html ``` diff --git a/edge-service/src/main/java/org/apache/servicecomb/fence/edge/TokenEndpoint.java b/edge-service/src/main/java/org/apache/servicecomb/fence/edge/TokenEndpoint.java index 8d88b1e..2a9c28c 100644 --- a/edge-service/src/main/java/org/apache/servicecomb/fence/edge/TokenEndpoint.java +++ b/edge-service/src/main/java/org/apache/servicecomb/fence/edge/TokenEndpoint.java @@ -23,11 +23,15 @@ import java.util.concurrent.CompletableFuture; import org.apache.servicecomb.fence.token.OpenIDToken; import org.apache.servicecomb.provider.pojo.RpcReference; import org.apache.servicecomb.provider.rest.common.RestSchema; +import org.apache.servicecomb.swagger.invocation.exception.CommonExceptionData; +import org.apache.servicecomb.swagger.invocation.exception.InvocationException; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; +import jakarta.ws.rs.core.Response.Status; + @RestSchema(schemaId = "TokenEndpoint") @RequestMapping(path = "/v1/token") public class TokenEndpoint implements TokenService { @@ -43,6 +47,11 @@ public class TokenEndpoint implements TokenService { authenticationSererTokenEndpoint.grantToken(parameters); response.whenComplete((tokenResonse, ex) -> { if (!response.isCompletedExceptionally()) { +if (tokenResonse == null) { + result.completeExceptionally(new InvocationException(Status.FORBIDDEN, + new CommonExceptionData("Invalid credentials"))); + return; +} result.complete(TokenResponse.fromOpenIDToken(tokenResonse)); } else { result.completeExceptionally(ex);
(servicecomb-fence) 01/03: update to 3.x
This is an automated email from the ASF dual-hosted git repository. liubao pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-fence.git commit a74a437f7360f13fa0d1bc9c3c3d28d87480 Author: liubao AuthorDate: Wed May 8 11:28:21 2024 +0800 update to 3.x --- authentication-server/pom.xml | 4 +- .../fence/AuthenticationServerApplication.java | 2 - .../AuthenticationConfiguration.java | 2 +- .../fence/authentication/GithubOAuthService.java | 11 +++-- .../authentication/GithubOAuthServiceRegister.java | 39 + .../fence/authentication/GithubTokenGranter.java | 15 --- .../fence/authentication/PasswordTokenGranter.java | 9 ++-- .../authentication/RefreshTokenTokenGranter.java | 9 ++-- .../fence/authentication/TokenEndpoint.java| 11 ++--- .../servicecomb/fence/EdgeServiceApplication.java | 2 - .../apache/servicecomb/fence/edge/AuthHandler.java | 51 ++ .../fence/edge/AuthenticationFilter.java | 25 +++ .../fence/edge/InternalAccessHandler.java | 31 + .../fence/edge/StaticWebpageDispatcher.java| 9 ++-- .../fence/AuthenticationClientMain.java| 2 - .../fence/tests/ITUriTemplateHandler.java | 14 +++--- pom.xml| 31 + .../fence/ResourceServerApplication.java | 2 - .../fence/resource/ResourceAuthHandler.java| 24 +++--- 19 files changed, 168 insertions(+), 125 deletions(-) diff --git a/authentication-server/pom.xml b/authentication-server/pom.xml index 13f93a0..b09bf40 100644 --- a/authentication-server/pom.xml +++ b/authentication-server/pom.xml @@ -44,11 +44,11 @@ org.apache.servicecomb - solution-basic + java-chassis-spring-boot-starter-standalone org.apache.servicecomb - java-chassis-spring-boot-starter-standalone + registry-local org.mybatis diff --git a/authentication-server/src/main/java/org/apache/servicecomb/fence/AuthenticationServerApplication.java b/authentication-server/src/main/java/org/apache/servicecomb/fence/AuthenticationServerApplication.java index c2cd1bc..4aee6bb 100644 --- a/authentication-server/src/main/java/org/apache/servicecomb/fence/AuthenticationServerApplication.java +++ b/authentication-server/src/main/java/org/apache/servicecomb/fence/AuthenticationServerApplication.java @@ -17,13 +17,11 @@ package org.apache.servicecomb.fence; -import org.apache.servicecomb.springboot2.starter.EnableServiceComb; import org.springframework.boot.WebApplicationType; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; @SpringBootApplication -@EnableServiceComb public class AuthenticationServerApplication { public static void main(String[] args) { try { diff --git a/authentication-server/src/main/java/org/apache/servicecomb/fence/authentication/AuthenticationConfiguration.java b/authentication-server/src/main/java/org/apache/servicecomb/fence/authentication/AuthenticationConfiguration.java index f89bf7c..6315eb5 100644 --- a/authentication-server/src/main/java/org/apache/servicecomb/fence/authentication/AuthenticationConfiguration.java +++ b/authentication-server/src/main/java/org/apache/servicecomb/fence/authentication/AuthenticationConfiguration.java @@ -35,7 +35,7 @@ import org.springframework.security.jwt.crypto.sign.SignerVerifier; public class AuthenticationConfiguration { @Bean(name = CommonConstants.BEAN_AUTH_PASSWORD_ENCODER) public PasswordEncoder authPasswordEncoder() { -return new Pbkdf2PasswordEncoder(); +return Pbkdf2PasswordEncoder.defaultsForSpringSecurity_v5_8(); } @Bean(name = {CommonConstants.BEAN_AUTH_SIGNER, CommonConstants.BEAN_AUTH_SIGNATURE_VERIFIER}) diff --git a/authentication-server/src/main/java/org/apache/servicecomb/fence/authentication/GithubOAuthService.java b/authentication-server/src/main/java/org/apache/servicecomb/fence/authentication/GithubOAuthService.java index 108aff6..e4b03d3 100644 --- a/authentication-server/src/main/java/org/apache/servicecomb/fence/authentication/GithubOAuthService.java +++ b/authentication-server/src/main/java/org/apache/servicecomb/fence/authentication/GithubOAuthService.java @@ -17,17 +17,16 @@ package org.apache.servicecomb.fence.authentication; -import javax.ws.rs.FormParam; -import javax.ws.rs.POST; -import javax.ws.rs.Path; - import org.springframework.http.MediaType; -import io.swagger.annotations.Api; +import jakarta.ws.rs.FormParam; +import jakarta.ws.rs.POST; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.Produces; //see: https://developer.github.com/apps/building-oauth-apps/authorizing-oauth-apps/ @Path("/login/oauth") -@Api(produces = MediaType.APPLICATION_JSON_VALUE)
(servicecomb-fence) branch master updated (8c8abc6 -> a893f88)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a change to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-fence.git from 8c8abc6 [SCB-2740]refactor folder structure and api (#46) new a74a437 update to 3.x new af8fe1e update to 3.x part2: spring boot new a893f88 fix not response when auth fail The 3 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: README_ZH.md | 2 +- authentication-server/pom.xml | 12 ++-- .../fence/AuthenticationServerApplication.java | 2 - .../AuthenticationConfiguration.java | 2 +- .../fence/authentication/GithubOAuthService.java | 11 ++- .../authentication/GithubOAuthServiceRegister.java | 39 --- .../fence/authentication/GithubTokenGranter.java | 15 ++-- .../fence/authentication/PasswordTokenGranter.java | 9 +-- .../authentication/RefreshTokenTokenGranter.java | 9 +-- .../fence/authentication/TokenEndpoint.java| 13 ++-- .../fence/authentication/user/TokenMapper.java | 21 -- .../fence/authentication/user/UserMapper.java | 17 + .../META-INF/spring/authentication.server.bean.xml | 46 - .../{microservice.yaml => application.yml} | 44 ++-- .../src/main/resources/config/TokenMapper.xml | 35 -- .../src/main/resources/config/UserMapper.xml | 47 - .../src/main/resources/config/mybatis-config.xml | 22 -- .../src/main/resources/log4j2.xml | 71 +++ .../src/main/resources/logback.xml | 79 -- .../src/main/resources/sql/user.sql| 2 +- .../servicecomb/fence/EdgeServiceApplication.java | 2 - .../fence/edge/AuthenticationConfiguration.java| 10 +++ ...hHandler.java => AuthenticationEdgeFilter.java} | 65 -- .../fence/edge/AuthenticationFilter.java | 50 -- .../edge/AuthenticationServerTokenEndpoint.java| 6 +- ...sHandler.java => InternalAccessEdgeFilter.java} | 32 ++--- .../fence/edge/StaticWebpageDispatcher.java| 9 +-- .../servicecomb/fence/edge/TokenEndpoint.java | 11 ++- ...servicecomb.common.rest.filter.HttpServerFilter | 18 - .../{microservice.yaml => application.yml} | 47 - .../src/main/resources/config/cse.handler.xml | 23 --- edge-service/src/main/resources/log4j2.xml | 71 +++ edge-service/src/main/resources/logback.xml| 79 -- .../fence/AuthenticationClientMain.java| 2 - .../fence/tests/ITUriTemplateHandler.java | 14 ++-- pom.xml| 66 ++ .../fence/ResourceServerApplication.java | 2 - ...> AccessDeniedExceptionExceptionConverter.java} | 21 +++--- .../fence/resource/AccessDynamicProperties.java| 2 +- .../resource/AuthenticationConfiguration.java | 6 +- ...Bean.java => AuthenticationProviderFilter.java} | 33 ++--- ...ava => ConfigBasedAuthorizationAuthFilter.java} | 4 +- .../fence/resource/ResourceAuthHandler.java| 32 - servicecomb.core.exception.ExceptionConverter} | 2 +- .../{microservice.yaml => application.yml} | 47 + .../src/main/resources/config/cse.handler.xml | 21 -- resource-server/src/main/resources/log4j2.xml | 71 +++ resource-server/src/main/resources/logback.xml | 79 -- 48 files changed, 541 insertions(+), 782 deletions(-) delete mode 100644 authentication-server/src/main/resources/META-INF/spring/authentication.server.bean.xml rename authentication-server/src/main/resources/{microservice.yaml => application.yml} (71%) delete mode 100644 authentication-server/src/main/resources/config/TokenMapper.xml delete mode 100644 authentication-server/src/main/resources/config/UserMapper.xml delete mode 100644 authentication-server/src/main/resources/config/mybatis-config.xml create mode 100644 authentication-server/src/main/resources/log4j2.xml delete mode 100644 authentication-server/src/main/resources/logback.xml rename edge-service/src/main/java/org/apache/servicecomb/fence/edge/{AuthHandler.java => AuthenticationEdgeFilter.java} (53%) delete mode 100644 edge-service/src/main/java/org/apache/servicecomb/fence/edge/AuthenticationFilter.java rename edge-service/src/main/java/org/apache/servicecomb/fence/edge/{InternalAccessHandler.java => InternalAccessEdgeFilter.java} (54%) delete mode 100644 edge-service/src/main/resources/META-INF/services/org.apache.servicecomb.common.rest.
(servicecomb-docs) branch master updated: improve 3rd invoke and load balance docs (#335)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-docs.git The following commit(s) were added to refs/heads/master by this push: new 02fb60d improve 3rd invoke and load balance docs (#335) 02fb60d is described below commit 02fb60db2070facdae36274210ca47deedc4d81e Author: liubao68 AuthorDate: Fri May 10 10:31:24 2024 +0800 improve 3rd invoke and load balance docs (#335) --- .../build-consumer/3rd-party-service-invoke.md | 101 - java-chassis-reference/en_US/mkdocs.yml| 1 - .../build-consumer/3rd-party-service-invoke.md | 98 .../zh_CN/docs/references-handlers/loadbalance.md | 25 +++-- .../zh_CN/docs/registry/distributed.md | 2 +- .../zh_CN/docs/registry/local-registry.md | 3 - java-chassis-reference/zh_CN/mkdocs.yml| 1 - 7 files changed, 20 insertions(+), 211 deletions(-) diff --git a/java-chassis-reference/en_US/docs/build-consumer/3rd-party-service-invoke.md b/java-chassis-reference/en_US/docs/build-consumer/3rd-party-service-invoke.md deleted file mode 100644 index 1ab74eb..000 --- a/java-chassis-reference/en_US/docs/build-consumer/3rd-party-service-invoke.md +++ /dev/null @@ -1,101 +0,0 @@ -# Invoking 3rd party REST service - -## Concept Description - -ServiceComb allows users to register the information of 3rd party REST service, including endpoint and swagger, so that users can invoke 3rd party services like invoking ServiceComb provider services. -Using this feature, all the requests sent to 3rd party service will be processed by consumer handler chain and HttpClientFilters, which means this feature allows service governance function on invoking 3rd party service, and other ServiceComb custom extension mechanism is also supported. - -## Sample Code - -1. Assume that there is a REST 3rd party service, whose listen port is 8080, and rest interface contract is like below: - ```yaml - --- - swagger: "2.0" - info: -version: "0.0.1" -title: "3rd party REST service for example" - basePath: "/rest" - consumes: - - "application/json" - produces: - - "text/plain" - paths: -/{pathVar}: - get: -operationId: "testPathVar" -parameters: -- name: "pathVar" - in: "path" - required: true - type: "string" -responses: - 200: -description: "response of 200, return \"Received, OK. [${pathVar}]\"" -schema: - type: "string" - ``` - -2. To invoke this service, a java interface class should be written according to the rest contract and annotated by rest annotations. - The way to write java interface class is similar to writing SpringMVC or JAX-RS style - ServiceComb provider service. Interface code is like below: - ```java - @Path("/rest") - @Api(produces = MediaType.TEXT_PLAIN) - public interface VertxServerIntf { -@Path("/{pathVar}") -@GET -String testPathVar(@PathParam("pathVar") String pathVar); - } - ``` - -3. Register the information of 3rd party rest service on consumer side: - ```java - String endpoint = "rest://127.0.0.1:8080"; - RegistryUtils.getServiceRegistry().registerMicroserviceMappingByEndpoints( - // 3rd party rest service name, you can specify the name on your need as long as you obey the microservice naming rule - "thirdPartyService", - // service version - "0.0.1", - // list of endpoints - Collections.singletonList(endpoint), - // java interface class to generate swagger schema - ThirdPartyRestServiceInterface.class - ); - ``` - -4. Invoke 3rd party rest service in the way similar to invoking ServiceComb provider service. - Here is a RPC style invoking example: - ```java - // declare rpc reference to 3rd party rest service, schemaId is the same as microservice name - @RpcReference(microserviceName = "thirdPartyService", schemaId = "thirdPartyService") - ThirdPartyRestServiceInterface thirdPartyRestService; - - @RequestMapping(path = "/{pathVar}", method = RequestMethod.GET) - public String testInvoke(@PathVariable(name = "pathVar") String pathVar) { -LOGGER.info("testInvoke() is called, pathVar = [{}]", pathVar); -// invoke 3rd party rest service -String response = thirdPartyRestService.testPathVar(pathVar); -LOGGER.info("testInvoke() response = [{}]", response); -return response; - } - ``` - -5. Service governance on invoking 3rd party REST service - - The service governance configuration on invoking 3rd party REST service is similar to the scenario t
(servicecomb-java-chassis) branch master updated: [SCB-2877]Fix zookeeper cache instances by application name problem (#4329)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git The following commit(s) were added to refs/heads/master by this push: new f3ad2047b [SCB-2877]Fix zookeeper cache instances by application name problem (#4329) f3ad2047b is described below commit f3ad2047b9cf09901f843f4c4c9f66dc9df527c5 Author: liubao68 AuthorDate: Thu May 9 14:08:07 2024 +0800 [SCB-2877]Fix zookeeper cache instances by application name problem (#4329) --- .../apache/servicecomb/registry/zookeeper/ZookeeperDiscovery.java| 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/service-registry/registry-zookeeper/src/main/java/org/apache/servicecomb/registry/zookeeper/ZookeeperDiscovery.java b/service-registry/registry-zookeeper/src/main/java/org/apache/servicecomb/registry/zookeeper/ZookeeperDiscovery.java index 4d871b3a1..c421a7022 100644 --- a/service-registry/registry-zookeeper/src/main/java/org/apache/servicecomb/registry/zookeeper/ZookeeperDiscovery.java +++ b/service-registry/registry-zookeeper/src/main/java/org/apache/servicecomb/registry/zookeeper/ZookeeperDiscovery.java @@ -73,7 +73,7 @@ public class ZookeeperDiscovery implements Discovery private static final Logger LOGGER = LoggerFactory.getLogger(ZookeeperDiscovery.class); - private final Map> serviceDiscoveries = + private final Map>> serviceDiscoveries = new ConcurrentHashMapEx<>(); private Environment environment; @@ -112,7 +112,8 @@ public class ZookeeperDiscovery implements Discovery @Override public List findServiceInstances(String application, String serviceName) { try { - ServiceCache discovery = serviceDiscoveries.computeIfAbsent(application, app -> { + ServiceCache discovery = serviceDiscoveries.computeIfAbsent(application, app -> + new ConcurrentHashMapEx<>()).computeIfAbsent(serviceName, name -> { JsonInstanceSerializer serializer = new JsonInstanceSerializer<>(ZookeeperInstance.class); ServiceDiscovery dis = ServiceDiscoveryBuilder.builder(ZookeeperInstance.class)
(servicecomb-java-chassis) branch liubao_master deleted (was 7b437fd27)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a change to branch liubao_master in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git was 7b437fd27 [SCB-2877]Fix zookeeper cache instances by application name problem This change permanently discards the following revisions: discard 7b437fd27 [SCB-2877]Fix zookeeper cache instances by application name problem
(servicecomb-java-chassis) 01/01: [SCB-2877]Fix zookeeper cache instances by application name problem
This is an automated email from the ASF dual-hosted git repository. liubao pushed a commit to branch liubao_master in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git commit 7b437fd27ac9810a1f92c61dc6610c284e233d0e Author: liubao AuthorDate: Thu May 9 11:40:57 2024 +0800 [SCB-2877]Fix zookeeper cache instances by application name problem --- .../apache/servicecomb/registry/zookeeper/ZookeeperDiscovery.java| 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/service-registry/registry-zookeeper/src/main/java/org/apache/servicecomb/registry/zookeeper/ZookeeperDiscovery.java b/service-registry/registry-zookeeper/src/main/java/org/apache/servicecomb/registry/zookeeper/ZookeeperDiscovery.java index 4d871b3a1..c421a7022 100644 --- a/service-registry/registry-zookeeper/src/main/java/org/apache/servicecomb/registry/zookeeper/ZookeeperDiscovery.java +++ b/service-registry/registry-zookeeper/src/main/java/org/apache/servicecomb/registry/zookeeper/ZookeeperDiscovery.java @@ -73,7 +73,7 @@ public class ZookeeperDiscovery implements Discovery private static final Logger LOGGER = LoggerFactory.getLogger(ZookeeperDiscovery.class); - private final Map> serviceDiscoveries = + private final Map>> serviceDiscoveries = new ConcurrentHashMapEx<>(); private Environment environment; @@ -112,7 +112,8 @@ public class ZookeeperDiscovery implements Discovery @Override public List findServiceInstances(String application, String serviceName) { try { - ServiceCache discovery = serviceDiscoveries.computeIfAbsent(application, app -> { + ServiceCache discovery = serviceDiscoveries.computeIfAbsent(application, app -> + new ConcurrentHashMapEx<>()).computeIfAbsent(serviceName, name -> { JsonInstanceSerializer serializer = new JsonInstanceSerializer<>(ZookeeperInstance.class); ServiceDiscovery dis = ServiceDiscoveryBuilder.builder(ZookeeperInstance.class)
(servicecomb-java-chassis) branch liubao_master created (now 7b437fd27)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a change to branch liubao_master in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git at 7b437fd27 [SCB-2877]Fix zookeeper cache instances by application name problem This branch includes the following new commits: new 7b437fd27 [SCB-2877]Fix zookeeper cache instances by application name problem The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference.
(servicecomb-fence) tag v0.3-alpha created (now 8c8abc6)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a change to tag v0.3-alpha in repository https://gitbox.apache.org/repos/asf/servicecomb-fence.git at 8c8abc6 (commit) No new revisions were added by this update.
(servicecomb-docs) branch master updated: fix tag reference (#334)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-docs.git The following commit(s) were added to refs/heads/master by this push: new 30da40c fix tag reference (#334) 30da40c is described below commit 30da40ca9c8b2f374c945e961a4b426e266af625 Author: liubao68 AuthorDate: Tue May 7 14:19:41 2024 +0800 fix tag reference (#334) --- java-chassis-reference/zh_CN/docs/config/zookeeper.md | 14 +- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/java-chassis-reference/zh_CN/docs/config/zookeeper.md b/java-chassis-reference/zh_CN/docs/config/zookeeper.md index 70fda66..42e6246 100644 --- a/java-chassis-reference/zh_CN/docs/config/zookeeper.md +++ b/java-chassis-reference/zh_CN/docs/config/zookeeper.md @@ -65,13 +65,16 @@ servicecomb: ${environment}: ${application}: ${service}: -${tag}: - exampleText: exampleTextValue - exampleYaml.yaml: exampleYamlValue - exampleYaml.yml: exampleYamlValue - exampleProperties.properties: examplePropertiesValue +${version}: + ${tag}: +exampleText: exampleTextValue +exampleYaml.yaml: exampleYamlValue +exampleYaml.yml: exampleYamlValue +exampleProperties.properties: examplePropertiesValue ``` +配置文件的类型根据KEY的后缀确定。目前会解析 `.yaml`、`.yml`、`.properties`后缀,其他情况钧视为普通的key-value对。 + * 配置项参考 | 配置项名 | 默认值| 是否必须 | 含义 | @@ -81,3 +84,4 @@ servicecomb: | servicecomb.config.zk.authenticationInfo | 空 | 否| 当认证方式为 digest 的时候,配置用户名密码信息,比如: user:password | | servicecomb.config.zk.connectionTimeoutMillis | 1000 | 否| 连接超时时间| | servicecomb.config.zk.sessionTimeoutMillis| 6 | 否| 会话超时时间| +| servicecomb.config.zk.instance-tag| 空 | 否| 实例的TAG信息,用于TAG级别的配置查询 |
(servicecomb-java-chassis) branch master updated: [SCB-2874]Fix zookeeper config not read tag value (#4328)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git The following commit(s) were added to refs/heads/master by this push: new ce606ab45 [SCB-2874]Fix zookeeper config not read tag value (#4328) ce606ab45 is described below commit ce606ab4527a3e3df3e915b4fa56481b7c8397f0 Author: liubao68 AuthorDate: Tue May 7 12:00:37 2024 +0800 [SCB-2874]Fix zookeeper config not read tag value (#4328) --- .../org/apache/servicecomb/samples/ProviderController.java | 13 - .../provider/src/main/resources/application.yml | 1 + .../java/org/apache/servicecomb/samples/HelloWorldIT.java | 3 +++ .../servicecomb/config/zookeeper/ZookeeperClient.java | 8 ++-- .../servicecomb/config/zookeeper/ZookeeperConfig.java | 6 ++ 5 files changed, 28 insertions(+), 3 deletions(-) diff --git a/demo/demo-zookeeper/provider/src/main/java/org/apache/servicecomb/samples/ProviderController.java b/demo/demo-zookeeper/provider/src/main/java/org/apache/servicecomb/samples/ProviderController.java index cfde7955d..a238d77be 100644 --- a/demo/demo-zookeeper/provider/src/main/java/org/apache/servicecomb/samples/ProviderController.java +++ b/demo/demo-zookeeper/provider/src/main/java/org/apache/servicecomb/samples/ProviderController.java @@ -87,7 +87,18 @@ public class ProviderController implements InitializingBean { client.delete().forPath(path + "/config.properties"); } client.create().creatingParentsIfNeeded(). -forPath(path + "/config.properties", "key2=3".getBytes(StandardCharsets.UTF_8)); +forPath(path + "/config.properties", "key2=3\nkey3=4".getBytes(StandardCharsets.UTF_8)); + +path = String.format(ZookeeperClient.PATH_TAG, env, +BootStrapProperties.readApplication(environment), +BootStrapProperties.readServiceName(environment), +BootStrapProperties.readServiceVersion(environment), +zookeeperConfig.getInstanceTag()); +if (client.checkExists().forPath(path + "/config.properties") != null) { + client.delete().forPath(path + "/config.properties"); +} +client.create().creatingParentsIfNeeded(). +forPath(path + "/config.properties", "key2=3\nkey3=5".getBytes(StandardCharsets.UTF_8)); client.close(); } diff --git a/demo/demo-zookeeper/provider/src/main/resources/application.yml b/demo/demo-zookeeper/provider/src/main/resources/application.yml index c13190f26..5707f0c12 100644 --- a/demo/demo-zookeeper/provider/src/main/resources/application.yml +++ b/demo/demo-zookeeper/provider/src/main/resources/application.yml @@ -29,6 +29,7 @@ servicecomb: config: zk: connectString: 127.0.0.1:2181 + instance-tag: config-demo rest: address: 0.0.0.0:9094 diff --git a/demo/demo-zookeeper/test-client/src/main/java/org/apache/servicecomb/samples/HelloWorldIT.java b/demo/demo-zookeeper/test-client/src/main/java/org/apache/servicecomb/samples/HelloWorldIT.java index f4cce5576..c24a8796c 100644 --- a/demo/demo-zookeeper/test-client/src/main/java/org/apache/servicecomb/samples/HelloWorldIT.java +++ b/demo/demo-zookeeper/test-client/src/main/java/org/apache/servicecomb/samples/HelloWorldIT.java @@ -40,6 +40,9 @@ public class HelloWorldIT implements CategorizedTestCase { result = template .getForObject(Config.GATEWAY_URL + "/getConfig?key=key2", String.class); TestMgr.check("3", result); +result = template +.getForObject(Config.GATEWAY_URL + "/getConfig?key=key3", String.class); +TestMgr.check("5", result); } private void testHelloWorld() { diff --git a/dynamic-config/config-zookeeper/src/main/java/org/apache/servicecomb/config/zookeeper/ZookeeperClient.java b/dynamic-config/config-zookeeper/src/main/java/org/apache/servicecomb/config/zookeeper/ZookeeperClient.java index 32554923e..407c577d4 100644 --- a/dynamic-config/config-zookeeper/src/main/java/org/apache/servicecomb/config/zookeeper/ZookeeperClient.java +++ b/dynamic-config/config-zookeeper/src/main/java/org/apache/servicecomb/config/zookeeper/ZookeeperClient.java @@ -75,7 +75,7 @@ public class ZookeeperClient { public static final String PATH_VERSION = "/servicecomb/config/version/%s/%s/%s/%s"; - public static final String PATH_TAG = "/servicecomb/config/tag/%s/%s/%s/%s"; + public static final String PATH_TAG = "/servicecomb/config/tag/%s/%s/%s/%s/%s"; private final UpdateHandler updateHandler; @@ -138,10 +138,14 @@ public class ZookeeperClient { } private void addTagConfig(String env, CuratorFramework client) throws Exception { +if (StringUtils.isEmpty(zookeeperConfig.getInstanceTag())) { + return; +}
(servicecomb-docs) branch master updated: update error handling SPI (#333)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-docs.git The following commit(s) were added to refs/heads/master by this push: new fd94c1d update error handling SPI (#333) fd94c1d is described below commit fd94c1d7dab3d029f9a984f426008f9eaec25378 Author: liubao68 AuthorDate: Mon May 6 15:53:46 2024 +0800 update error handling SPI (#333) --- .../zh_CN/docs/build-provider/multi-code.md| 14 ++- .../docs/build-provider/parameter-validator.md | 59 +++- .../docs/general-development/error-handling.md | 100 ++--- 3 files changed, 89 insertions(+), 84 deletions(-) diff --git a/java-chassis-reference/zh_CN/docs/build-provider/multi-code.md b/java-chassis-reference/zh_CN/docs/build-provider/multi-code.md index 0915357..cca263e 100644 --- a/java-chassis-reference/zh_CN/docs/build-provider/multi-code.md +++ b/java-chassis-reference/zh_CN/docs/build-provider/multi-code.md @@ -1,16 +1,14 @@ # 多个返回值和错误码 -使用透明RPC开发服务提供者,开发者很容易理解一个接口只有一个返回值类型。使用REST风格(Spring MVC 或者 JAXRS),很多场景会碰到 -多个返回值和错误码的情况。和很多其他开发框架(比如Servlet、Spring MVC等)不一样,Java Chassis要求接口定义的返回值和错误码都 -必须显示的声明,即通过代码生成的swagger,必须包含所有的错误码描述和返回值类型描述。 在Java Chassis,无法使用隐藏参数、未声明 -的错误码。这样设计的直接好处是接口定义更加明确,不需要额外的文档帮助使用者理解接口的使用方法。 +使用透明RPC开发服务提供者,开发者很容易理解一个接口只有一个返回值类型。使用REST风格(Spring MVC 或者 JAXRS),很多场景会碰到多个返回值和错误码的情况。Java Chassis要求接口定义的返回值和错误码都 +必须显示的声明,即通过代码生成的swagger,必须包含所有的错误码描述和返回值类型描述。 在Java Chassis,无法使用隐藏参数、未声明 的错误码。这样设计的直接好处是接口定义更加明确,不需要额外的文档帮助使用者理解接口的使用方法。 -在前面的开发指导里面,主要介绍了一个返回值和一个错误码的情况(200)。 下面介绍如何使用多个错误码和返回值,同时会介绍如何返回额外的 -header参数。 +>>> 建议在进行API设计的时候,一个API只包含一个返回值类型,因为站在使用者的角度,不管使用RPC风格还是REST风格访问,都非常简洁和直观。保留多个返回值和错误码设计,更多的是为了API接口设计兼容的需要。 + +在前面的开发指导里面,主要介绍了一个返回值和一个错误码的情况(200)。 下面介绍如何使用多个错误码和返回值,同时会介绍如何返回额外的header参数。 Java Chassis将错误码进行了分类:2xx错误码认为是一个正常的响应,一个接口只允许存在一个正常响应错误码; -其他错误码认为是一个异常的响应,一个接口可以定义多个异常的响应,并且需要采用InvocationException的方式将异常抛出,每个错误码可以指定 -不同的响应类型。 +其他错误码认为是一个异常的响应,一个接口可以定义多个异常的响应,并且需要采用InvocationException的式将异常抛出,每个错误码可以指定不同的响应类型。 * 采用`ApiResponse`定义多个返回值和错误码 diff --git a/java-chassis-reference/zh_CN/docs/build-provider/parameter-validator.md b/java-chassis-reference/zh_CN/docs/build-provider/parameter-validator.md index d36c4d2..9773c3c 100644 --- a/java-chassis-reference/zh_CN/docs/build-provider/parameter-validator.md +++ b/java-chassis-reference/zh_CN/docs/build-provider/parameter-validator.md @@ -50,7 +50,7 @@ public class Validator { * bean类验证 -需要在传入的Student对象前加@Valid,如上图sayHello\(@Valid Student student\)方法。 +需要在传入的Student对象前加 `@Valid`,如上图 `sayHello(@Valid Student student)` 方法。 ```java public class Student { @@ -80,37 +80,48 @@ public class Student { ## 自定义返回异常 -* 默认的参数效验器ParameterValidator已经实现了接口ProducerInvokeExtension,按照JSR 349规范处理所需的参数验证。 +默认的参数效验器ParameterValidator已经实现了接口ProducerInvokeExtension,按照JSR 349规范处理所需的参数验证。如果任何参数验证失败,缺省错误是 `BAD_REQUEST(400, "Bad Request")` 。 返回错误支持自定义扩展,使用SPI机制。 - 如果任何参数验证失败,缺省错误是BAD\_REQUEST\(400, "Bad Request"\)。 +可以通过实现接口`ExceptionConverter`来自定义返回的错误信息,以`ConstraintViolationExceptionConverter`为例。 - 返回错误支持自定义扩展,使用SPI机制。 +1. 实现ExceptionConverter接口,重写方法,其中getOrder方法的返回结果表示该验证器的优先级,值越小优先级越高。 -* 可以通过实现接口ExceptionToProducerResponseConverter来自定义返回的错误信息,以ConstraintViolationExceptionToProducerResponseConverter为例。 +```java +public class ConstraintViolationExceptionConverter implements ExceptionConverter { + public static final int ORDER = Short.MAX_VALUE; - 1. 实现ExceptionToProducerResponseConverter接口,重写方法,其中getOrder方法的返回结果表示该验证器的优先级,值越小优先级越高。 + public static final String KEY_CODE = "servicecomb.filters.validate.code"; - ```java - public class ConstraintViolationExceptionToProducerResponseConverter - implements ExceptionToProducerResponseConverter { - @Override - public Class getExceptionClass() { - return ConstraintViolationException.class; - } + public ConstraintViolationExceptionConverter() { + } - @Override - public Response convert(SwaggerInvocation swaggerInvocation, ConstraintViolationException e) { - return Response.createFail(new InvocationException(Status.BAD_REQUEST, e.getConstraintViolations().toString())); - } + @Override + public int getOrder() { +return ORDER; + } + + @Override + public boolean canConvert(Throwable throwable) { +return throwable instanceof ConstraintViolationException; + } + + @Override + public InvocationException convert(Invocation invocation, ConstraintViolationException throwable, + StatusType genericStatus) { +List details = throwable.getConstraintViolations().stream() +.map(violation -> new ValidateDetail(violation.getPropertyPath().toString(), violation.getMessage())) +.collect(Collectors.toList()); + +CommonExceptionData exceptionData = new CommonExceptionD
(servicecomb-java-chassis) branch 2.8.x updated: [#4303]compatible to old systems allowing different response type in exception processing(#4327)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a commit to branch 2.8.x in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git The following commit(s) were added to refs/heads/2.8.x by this push: new 71591e884 [#4303]compatible to old systems allowing different response type in exception processing(#4327) 71591e884 is described below commit 71591e884df882ca4d94d392a38480f9e69aa4d1 Author: liubao68 AuthorDate: Mon May 6 14:42:25 2024 +0800 [#4303]compatible to old systems allowing different response type in exception processing(#4327) --- .../rest/filter/inner/ServerRestArgsFilter.java| 16 +++--- .../demo/springmvc/SpringmvcClient.java| 1 + .../demo/springmvc/client/ResponseOKData.java | 48 + .../demo/springmvc/client/TestDownloadSchema.java | 63 -- .../demo/springmvc/server/DownloadSchema.java | 37 +++-- .../demo/springmvc/server/ResponseOKData.java | 44 +++ .../demo/springmvc/server/ResponseOKException.java | 20 +++ .../server/ResponseOKExceptionConverter.java | 41 ++ exception.ExceptionToProducerResponseConverter | 18 +++ .../transport/highway/HighwayServerInvoke.java | 13 +++-- 10 files changed, 280 insertions(+), 21 deletions(-) diff --git a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/filter/inner/ServerRestArgsFilter.java b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/filter/inner/ServerRestArgsFilter.java index 63ae8eea9..bef5b48a4 100644 --- a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/filter/inner/ServerRestArgsFilter.java +++ b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/filter/inner/ServerRestArgsFilter.java @@ -69,20 +69,20 @@ public class ServerRestArgsFilter implements HttpServerFilter { Response response = (Response) responseEx.getAttribute(RestConst.INVOCATION_HANDLER_RESPONSE); ProduceProcessor produceProcessor = (ProduceProcessor) responseEx.getAttribute(RestConst.INVOCATION_HANDLER_PROCESSOR); -Object body = response.getResult(); -if (response.isFailed()) { - body = ((InvocationException) body).getErrorData(); -} - -if (null != invocation && isDownloadFileResponseType(invocation, response)) { - return responseEx.sendPart(PartUtils.getSinglePart(null, body)); +boolean failed = response.getResult() instanceof InvocationException; +if (!failed && isDownloadFileResponseType(invocation, response)) { + return responseEx.sendPart(PartUtils.getSinglePart(null, response.getResult())); } responseEx.setContentType(produceProcessor.getName() + "; charset=utf-8"); CompletableFuture future = new CompletableFuture<>(); try (BufferOutputStream output = new BufferOutputStream(Unpooled.compositeBuffer())) { - produceProcessor.encodeResponse(output, body); + if (failed) { +produceProcessor.encodeResponse(output, ((InvocationException) response.getResult()).getErrorData()); + } else { +produceProcessor.encodeResponse(output, response.getResult()); + } responseEx.setBodyBuffer(output.getBuffer()); future.complete(null); diff --git a/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/SpringmvcClient.java b/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/SpringmvcClient.java index d7cfe67e7..ba487e52c 100644 --- a/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/SpringmvcClient.java +++ b/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/SpringmvcClient.java @@ -75,6 +75,7 @@ public class SpringmvcClient { LOGGER.error("-- test failed -"); } TestMgr.summary(); +LOGGER.info("-- last time updated checks(maybe more/less): 1222 -"); } private static void changeTransport(String microserviceName, String transport) { diff --git a/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/ResponseOKData.java b/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/ResponseOKData.java new file mode 100644 index 0..df2bf9c5f --- /dev/null +++ b/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/ResponseOKData.java @@ -0,0 +1,48 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "
(servicecomb-docs) branch master updated: add white/black rule descriptions (#332)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-docs.git The following commit(s) were added to refs/heads/master by this push: new 87fb4df add white/black rule descriptions (#332) 87fb4df is described below commit 87fb4df259c077883e1fa18b8c66c6db92f3bc91 Author: Cheng YouLing <97039406+chengyoul...@users.noreply.github.com> AuthorDate: Mon May 6 14:18:14 2024 +0800 add white/black rule descriptions (#332) --- .../en_US/docs/references-handlers/publickey.md | 12 +++- .../zh_CN/docs/references-handlers/publickey.md | 15 ++- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/java-chassis-reference/en_US/docs/references-handlers/publickey.md b/java-chassis-reference/en_US/docs/references-handlers/publickey.md index 6bc93d1..2000ec2 100644 --- a/java-chassis-reference/en_US/docs/references-handlers/publickey.md +++ b/java-chassis-reference/en_US/docs/references-handlers/publickey.md @@ -54,6 +54,16 @@ servicecomb: rule: cust* ``` -The above rules are configured with blacklists, which do not allow microservice names to be accessed by hackers; whitelists allow access to services with microservice names named cust. +The above rules are configured with black and white rule. includePathPatterns is set the request path that needs auth, and excludePathPatterns is set the request path that not need auth. black/white is microservice black and white rules. + +IncludePathPatterns, excludePathPatterns Supports three types of matching rules: prefix (xxx/), suffix (/xxx) and exact match. + +Logic for determining whether the current request requires authentication: + +1.Check whether the path of current request matches the excludePathPatterns setting rule. If yes, authentication is not required. + +2.If excludePathPatterns does not match, check whether a rule is configured for includePathPatterns. If no, all requests need to be authenticated; If set, check whether the path of current request matches the rule. If yes, authentication is required. If no, authentication is not required. + +Microservice black/white determination rules: which do not allow microservice names to be accessed by hackers; whitelists allow access to services with microservice names named cust. ServiceComb provides [trust-sample] (https://github.com/apache/servicecomb-samples/tree/master/java-chassis-samples/trust-sample) to demonstrate the black and white list feature. diff --git a/java-chassis-reference/zh_CN/docs/references-handlers/publickey.md b/java-chassis-reference/zh_CN/docs/references-handlers/publickey.md index 583e9e6..1a754fb 100644 --- a/java-chassis-reference/zh_CN/docs/references-handlers/publickey.md +++ b/java-chassis-reference/zh_CN/docs/references-handlers/publickey.md @@ -16,6 +16,9 @@ servicecomb: publicKey: accessControl: + enabled: true + includePathPatterns: '/authIncludePath' + excludePathPatterns: '/authExcludePath' black: list01: category: property ## property, fixed value @@ -31,6 +34,16 @@ servicecomb: rule: cust* ``` -以上规则配置了黑名单,不允许微服务名称为hacker的访问;白名单,允许微服务名称为cust前缀的服务访问。 +以上为服务黑白名单规则配置,其中includePathPatterns为需要鉴权请求path,excludePathPatterns为不需要鉴权请求path,black/white分别为微服务黑白名单规则。 + +includePathPatterns、excludePathPatterns规则设置支持前缀(xxx/)、后缀(/xxx)、精确三种匹配规则。 + +判断当前请求是否需要鉴权逻辑: + +1、判断当前请求path是否能够匹配excludePathPatterns设置规则,如果匹配,则不需要鉴权; + +2、excludePathPatterns未满足条件,再判断includePathPatterns是否设置规则,如果未设置则所有请求均需要进行鉴权;如果有设置规则,则判断当前请求path是否能够匹配设置规则,如果匹配则需要鉴权,如果不匹配则不需要鉴权。 + +微服务黑名单判断规则:不允许微服务名称为hacker的访问;白名单,允许微服务名称为cust前缀的服务访问。 ServiceComb提供了[trust-sample](https://github.com/apache/servicecomb-samples/tree/master/java-chassis-samples/trust-sample)来演示黑白名单功能。
(servicecomb-java-chassis) branch master updated: [SCB-2876]remove unused ExceptionToProducerResponseConverter SPI (#4326)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git The following commit(s) were added to refs/heads/master by this push: new 43d54c7d2 [SCB-2876]remove unused ExceptionToProducerResponseConverter SPI (#4326) 43d54c7d2 is described below commit 43d54c7d22558a49758037a1afeaa6f50f8ebeac Author: liubao68 AuthorDate: Mon May 6 12:04:56 2024 +0800 [SCB-2876]remove unused ExceptionToProducerResponseConverter SPI (#4326) --- ...gumentExceptionToProducerResponseConverter.java | 46 - ...owableExceptionToProducerResponseConverter.java | 45 - exception.ExceptionToProducerResponseConverter | 19 --- .../impl/ErrorToProducerResponseConverter.java | 35 exception.ExceptionToProducerResponseConverter | 18 -- ...efaultExceptionToProducerResponseConverter.java | 39 - ...faultExceptionToProducerResponseConverters.java | 78 - .../invocation/exception/ExceptionFactory.java | 12 +- .../ExceptionToProducerResponseConverter.java | 36 .../ExceptionToProducerResponseConverters.java | 28 --- ...cationExceptionToProducerResponseConverter.java | 33 exception.ExceptionToProducerResponseConverter | 19 --- ...exception.ExceptionToProducerResponseConverters | 18 -- .../ErrorToProducerResponseConverter.java | 34 ...efaultExceptionToProducerResponseConverter.java | 40 - ...faultExceptionToProducerResponseConverters.java | 189 - .../invocation/exception/TestExceptionFactory.java | 34 ...cationExceptionToProducerResponseConverter.java | 40 - exception.ExceptionToProducerResponseConverter | 18 -- ...lationExceptionToProducerResponseConverter.java | 43 - exception.ExceptionToProducerResponseConverter | 18 -- 21 files changed, 1 insertion(+), 841 deletions(-) diff --git a/core/src/main/java/org/apache/servicecomb/core/exception/IllegalArgumentExceptionToProducerResponseConverter.java b/core/src/main/java/org/apache/servicecomb/core/exception/IllegalArgumentExceptionToProducerResponseConverter.java deleted file mode 100644 index 532c38b63..0 --- a/core/src/main/java/org/apache/servicecomb/core/exception/IllegalArgumentExceptionToProducerResponseConverter.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.servicecomb.core.exception; - -import jakarta.ws.rs.core.Response.Status; - -import org.apache.servicecomb.swagger.invocation.Response; -import org.apache.servicecomb.swagger.invocation.SwaggerInvocation; -import org.apache.servicecomb.swagger.invocation.exception.CommonExceptionData; -import org.apache.servicecomb.swagger.invocation.exception.ExceptionToProducerResponseConverter; -import org.apache.servicecomb.swagger.invocation.exception.InvocationException; - -public class IllegalArgumentExceptionToProducerResponseConverter implements -ExceptionToProducerResponseConverter { - @Override - public Class getExceptionClass() { -return IllegalArgumentException.class; - } - - @Override - public int getOrder() { -return 1; - } - - @Override - public Response convert(SwaggerInvocation swaggerInvocation, IllegalArgumentException e) { -InvocationException invocationException = new InvocationException(Status.BAD_REQUEST.getStatusCode(), "", -new CommonExceptionData("Parameters not valid or types not match."), e); -return Response.failResp(invocationException); - } -} diff --git a/core/src/main/java/org/apache/servicecomb/core/exception/ThrowableExceptionToProducerResponseConverter.java b/core/src/main/java/org/apache/servicecomb/core/exception/ThrowableExceptionToProducerResponseConverter.java deleted file mode 100644 index 501846426..0 --- a/core/src/main/java/org/apache/servicecomb/core/exception/ThrowableExceptionToProducerResponseConverter.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with
(servicecomb-java-chassis) branch master updated: [#4303]compatible to old systems allowing different response type in exception processing(#4307)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git The following commit(s) were added to refs/heads/master by this push: new 018a12f30 [#4303]compatible to old systems allowing different response type in exception processing(#4307) 018a12f30 is described below commit 018a12f30f73556c38a16d1352e0e3bac3932341 Author: liubao68 AuthorDate: Mon May 6 10:39:45 2024 +0800 [#4303]compatible to old systems allowing different response type in exception processing(#4307) --- .../common/rest/RestProducerInvocationFlow.java| 4 +- .../rest/filter/inner/RestServerCodecFilter.java | 11 +++- .../core/exception/DefaultExceptionProcessor.java | 3 +- .../apache/servicecomb/core/filter/FilterNode.java | 11 +--- .../core/invocation/ProducerInvocationFlow.java| 72 -- .../demo/springmvc/SpringmvcClient.java| 2 +- .../demo/springmvc/client/ResponseOKData.java | 48 +++ .../demo/springmvc/client/TestDownloadSchema.java | 47 ++ .../demo/springmvc/server/DownloadSchema.java | 41 +--- .../demo/springmvc/server/ResponseOKData.java | 44 + .../demo/springmvc/server/ResponseOKException.java | 20 ++ .../server/ResponseOKExceptionConverter.java | 40 ...e.servicecomb.core.exception.ExceptionConverter | 18 ++ .../highway/HighwayServerCodecFilter.java | 12 +++- .../highway/HighwayServerCodecFilterTest.java | 3 +- 15 files changed, 305 insertions(+), 71 deletions(-) diff --git a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/RestProducerInvocationFlow.java b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/RestProducerInvocationFlow.java index c8e32471f..b09406bd4 100644 --- a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/RestProducerInvocationFlow.java +++ b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/RestProducerInvocationFlow.java @@ -29,6 +29,7 @@ import org.apache.servicecomb.foundation.common.utils.PartUtils; import org.apache.servicecomb.foundation.vertx.http.HttpServletRequestEx; import org.apache.servicecomb.foundation.vertx.http.HttpServletResponseEx; import org.apache.servicecomb.swagger.invocation.Response; +import org.apache.servicecomb.swagger.invocation.exception.InvocationException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -60,7 +61,8 @@ public class RestProducerInvocationFlow extends ProducerInvocationFlow { @Override protected void sendResponse(Invocation invocation, Response response) { invocation.getInvocationStageTrace().startProviderSendResponse(); -if (isDownloadFileResponseType(invocation, response)) { +boolean failed = response.getResult() instanceof InvocationException; +if (!failed && isDownloadFileResponseType(invocation, response)) { responseEx.sendPart(PartUtils.getSinglePart(null, response.getResult())) .whenComplete((r, e) -> flushResponse(invocation)); return; diff --git a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/filter/inner/RestServerCodecFilter.java b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/filter/inner/RestServerCodecFilter.java index d727a7141..b1b3c37b7 100644 --- a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/filter/inner/RestServerCodecFilter.java +++ b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/filter/inner/RestServerCodecFilter.java @@ -46,6 +46,7 @@ import org.apache.servicecomb.foundation.vertx.stream.BufferOutputStream; import org.apache.servicecomb.swagger.invocation.Response; import org.apache.servicecomb.swagger.invocation.context.TransportContext; import org.apache.servicecomb.swagger.invocation.exception.CommonExceptionData; +import org.apache.servicecomb.swagger.invocation.exception.InvocationException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -124,13 +125,19 @@ public class RestServerCodecFilter extends AbstractFilter implements ProviderFil responseEx.setStatus(response.getStatusCode()); copyHeadersToHttpResponse(response.getHeaders(), responseEx); -if (download) { +boolean failed = response.getResult() instanceof InvocationException; + +if (!failed && download) { return CompletableFuture.completedFuture(response); } responseEx.setContentType(produceProcessor.getName()); try (BufferOutputStream output = new BufferOutputStream(Unpooled.compositeBuffer())) { - produceProcessor.encodeResponse(output, response.getResult()); + if (failed) { +produceProcessor.encodeResponse(output, ((InvocationException) response.getResult()).getErrorData()); + } else { +produceProcessor.en
(servicecomb-java-chassis) branch master updated: [#4300] black/white microservice authentication add apiWhiteList (#4301)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git The following commit(s) were added to refs/heads/master by this push: new 0c7f5e1bb [#4300] black/white microservice authentication add apiWhiteList (#4301) 0c7f5e1bb is described below commit 0c7f5e1bb13e1f029f2fd861c5ff52b6fc8f5dfa Author: Cheng YouLing <97039406+chengyoul...@users.noreply.github.com> AuthorDate: Mon May 6 10:15:26 2024 +0800 [#4300] black/white microservice authentication add apiWhiteList (#4301) --- .../servicecomb/samples/ConsumerController.java| 5 ++ .../servicecomb/samples/ProviderService.java | 2 + .../consumer/src/main/resources/application.yml| 5 +- .../servicecomb/samples/ProviderController.java| 5 ++ .../provider/src/main/resources/application.yml| 9 +++ .../apache/servicecomb/samples/HelloWorldIT.java | 11 +++ .../authentication/provider/PathCheckUtils.java| 92 ++ .../provider/ProviderAuthFilter.java | 9 ++- 8 files changed, 136 insertions(+), 2 deletions(-) diff --git a/demo/demo-nacos/consumer/src/main/java/org/apache/servicecomb/samples/ConsumerController.java b/demo/demo-nacos/consumer/src/main/java/org/apache/servicecomb/samples/ConsumerController.java index 4ed0ecd85..437f88bfa 100644 --- a/demo/demo-nacos/consumer/src/main/java/org/apache/servicecomb/samples/ConsumerController.java +++ b/demo/demo-nacos/consumer/src/main/java/org/apache/servicecomb/samples/ConsumerController.java @@ -34,4 +34,9 @@ public class ConsumerController { public String sayHello(@RequestParam("name") String name) { return providerService.sayHello(name); } + + @GetMapping("/authIncludePath") + public String authIncludePath() { +return providerService.authIncludePath(); + } } diff --git a/demo/demo-nacos/consumer/src/main/java/org/apache/servicecomb/samples/ProviderService.java b/demo/demo-nacos/consumer/src/main/java/org/apache/servicecomb/samples/ProviderService.java index f327412b7..ee62a1106 100644 --- a/demo/demo-nacos/consumer/src/main/java/org/apache/servicecomb/samples/ProviderService.java +++ b/demo/demo-nacos/consumer/src/main/java/org/apache/servicecomb/samples/ProviderService.java @@ -19,4 +19,6 @@ package org.apache.servicecomb.samples; public interface ProviderService { String sayHello(String name); + + String authIncludePath(); } diff --git a/demo/demo-nacos/consumer/src/main/resources/application.yml b/demo/demo-nacos/consumer/src/main/resources/application.yml index 0110e6e27..d2317215e 100644 --- a/demo/demo-nacos/consumer/src/main/resources/application.yml +++ b/demo/demo-nacos/consumer/src/main/resources/application.yml @@ -29,5 +29,8 @@ servicecomb: rest: address: 0.0.0.0:9092 - + publicKey: +accessControl: + enabled: true + excludePathPatterns: '/*' diff --git a/demo/demo-nacos/provider/src/main/java/org/apache/servicecomb/samples/ProviderController.java b/demo/demo-nacos/provider/src/main/java/org/apache/servicecomb/samples/ProviderController.java index 6eea7776a..0076440d2 100644 --- a/demo/demo-nacos/provider/src/main/java/org/apache/servicecomb/samples/ProviderController.java +++ b/demo/demo-nacos/provider/src/main/java/org/apache/servicecomb/samples/ProviderController.java @@ -30,4 +30,9 @@ public class ProviderController { public String sayHello(@RequestParam("name") String name) { return "Hello " + name; } + + @GetMapping("/authIncludePath") + public String authIncludePath() { +return "success."; + } } diff --git a/demo/demo-nacos/provider/src/main/resources/application.yml b/demo/demo-nacos/provider/src/main/resources/application.yml index b24d281cd..ae6e029b7 100644 --- a/demo/demo-nacos/provider/src/main/resources/application.yml +++ b/demo/demo-nacos/provider/src/main/resources/application.yml @@ -31,3 +31,12 @@ servicecomb: rest: address: 0.0.0.0:9094 + publicKey: +accessControl: + enabled: true + includePathPatterns: '/authIncludePath' + black: +authPath: + category: property + propertyName: serviceName + rule: consumer* diff --git a/demo/demo-nacos/test-client/src/main/java/org/apache/servicecomb/samples/HelloWorldIT.java b/demo/demo-nacos/test-client/src/main/java/org/apache/servicecomb/samples/HelloWorldIT.java index 59d06bb1e..ad9460753 100644 --- a/demo/demo-nacos/test-client/src/main/java/org/apache/servicecomb/samples/HelloWorldIT.java +++ b/demo/demo-nacos/test-client/src/main/java/org/apache/servicecomb/samples/HelloWorldIT.java @@ -30,6 +30,7 @@ public class HelloWorldIT implements CategorizedTestCase { @Override public void testRestTransport() throws Exception { testHelloWorld(); +testAuthIncludePath(); } private void testHell
(servicecomb-docs) branch master updated: add governance docs (#330)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-docs.git The following commit(s) were added to refs/heads/master by this push: new fa1bb04 add governance docs (#330) fa1bb04 is described below commit fa1bb04c91aa97b62607c9e07fe70173d992e754 Author: liubao68 AuthorDate: Thu Apr 25 17:47:35 2024 +0800 add governance docs (#330) --- .../references-handlers/gateway-governance.png | Bin 0 -> 69657 bytes .../governance-best-practise.md| 178 + .../zh_CN/docs/references-handlers/governance.md | 98 --- .../zh_CN/docs/references-handlers/ratelimit.md| 2 +- .../docs/references-handlers/rule-governance.md| 296 + .../references-handlers/service-governance.png | Bin 0 -> 75797 bytes java-chassis-reference/zh_CN/mkdocs.yml| 3 +- 7 files changed, 477 insertions(+), 100 deletions(-) diff --git a/java-chassis-reference/zh_CN/docs/references-handlers/gateway-governance.png b/java-chassis-reference/zh_CN/docs/references-handlers/gateway-governance.png new file mode 100644 index 000..3e78d7c Binary files /dev/null and b/java-chassis-reference/zh_CN/docs/references-handlers/gateway-governance.png differ diff --git a/java-chassis-reference/zh_CN/docs/references-handlers/governance-best-practise.md b/java-chassis-reference/zh_CN/docs/references-handlers/governance-best-practise.md new file mode 100644 index 000..07562da --- /dev/null +++ b/java-chassis-reference/zh_CN/docs/references-handlers/governance-best-practise.md @@ -0,0 +1,178 @@ +# 流量特征治理最佳实践 + +在[Java Chassis设计参考](../start/design.md)中总结了典型的微服务应用架构: + +![](../start/application-architect.png) + +参考这个架构,微服务系统有两个比较重要的微服务部件:应用网关和微服务。 这两个部件是微服务治理的重点对象,它们所处的位置和作用存在一些差异,因此应用服务治理的策略也会有所不同。 本文以这个两个部件说明常见的治理策略设计。 + +首先,对应系统的所有API访问,做一个全局的业务定义。 + +```yaml +servicecomb: + matchGroup: +allOperation: | + matches: +- apiPath: +prefix: "/" +``` + +## 应用网关治理设计 + +应用网关需要根据系统能够处理的最大流量,配置限流器,快速拒绝超过系统的流量,由用户(前端脚本)发起重试,在保证系统可用性的同时,尽可能降低对于用户体验的影响。还需要提供一定的基于背压的服务治理能力,比如如果后端服务某个实例不可用,或者某个服务刚刚启动完毕,需要初始化,发往这些服务的请求会表现为时延增加,如果不根据时延增加的反馈进行流量控制,就会导致用户体验极速下降。 + +![](gateway-governance.png) + +应用网关配置限流器、熔断器和隔离仓。 + +* 服务端限流器:超过系统最大处理能力的请求场景,限流值的依据是压测的真实能力数据,可以控制在最大处理能力的80%左右。在系统上线初始阶段,默认设置全局限流器。在无法估算限流大小的时候,可以将流量限制设置为一个最大值,限流器也可以起到流量梳理平滑流量的作用。 +* 客户端熔断器:主要解决实例异常下线,本地缓存感知不及时的问题。实例熔断后会触发实例查询。因此,应用网关的熔断器的隔离时间会设置的比较短。 +* 客户端隔离仓:主要解决故障场景,比如数据库故障恢复、实例重启等,系统吞吐量下降的情况;或者微服务第一次启动、微服务长期没有请求突然进来大量请求的场景,这些场景可以限制并发连接,避免造成微服务和网关CPU大量使用,请求超时。 +* 应用网关可选客户端容错配置。最佳的方案是由小程序、WEB端应用发起重试,进行客户端容错。 + +### 配置 + +```yaml +servicecomb: + matchGroup: +allOperation: | + matches: + - apiPath: + prefix: "/" + rateLimiting: + ## 限流器每10毫秒允许通过100个请求,如果一个请求超过1000毫秒没有获取到 + ## 许可,将被拒绝 +allOperation: | + rate: 100 + limitRefreshPeriod: 10 + timeoutDuration: 1000 + instanceIsolation: + ## 熔断器错误率达到50%或者耗时请求达到100%,将开启。 + ## 开启时间为5000毫秒,然后会放通10个请求。 +allOperation: | + minimumNumberOfCalls: 10 + slidingWindowSize: 20 + slidingWindowType: COUNT_BASED + failureRateThreshold: 50 + slowCallRateThreshold: 100 + slowCallDurationThreshold: 1000 + waitDurationInOpenState: 5000 + permittedNumberOfCallsInHalfOpenState: 10 + instanceBulkhead: + ## 隔离仓限制正在处理的请求数为20个,新来的请求等待1000毫秒没有获取到 + ## 许可,将被拒绝。 +allOperation: | + maxConcurrentCalls: 20 + maxWaitDuration: 1000 +``` + +### 持续演进 +场景一:耗时请求需要配置独立的限流策略。需要结合业务的持续演进,进行配置增加。 + +```yaml +servicecomb: + matchGroup: +timeConsumingOperation: | + matches: +- apiPath: +prefix: "/timeConsumingOperation" + rateLimiting: + ## 限流器每100毫秒允许通过1个请求,如果一个请求超过1000毫秒没有获取到 + ## 许可,将被拒绝 + timeConsumingOperation: | + rate: 1 + limitRefreshPeriod: 100 + timeoutDuration: 1000 +``` + +场景二:需要防止机器人的场景,或者需要防止DDOS的场景,需要先考虑应用网关的扩容,然后根据用户ID或者请求端IP进行分布式限流。应用系统在规划的时候,需要考虑将用户ID通过HTTP HEADER的方式传递;或者ELB需要将客户的IP通过x-real-ip HTTP HEADER传递。 + +```yaml +servicecomb: + matchGroup: +allOperation: | + matches: +- apiPath: +prefix: "/" + identifierRateLimiting: + ## 限流器每100毫秒允许通过1个请求,如果一个请求超过1000毫秒没有获取到 + ## 许可,将被拒绝。相当于限制每个用户1秒钟10个请求。 +allOperation: | + rate: 1 + limitRefreshPeriod: 100 + timeoutDuration: 1000 + identifier: user-id +``` + +## 微服务治理设计 + +微服务治理设计和网关设计有很多类似之处,也有少量的差异。 + +![](service-governance.png) + +微服务配置服务端限流、服务端隔离仓、客户端容错、客户端熔断和客户端隔离仓。 + +* 服务端限流器:超过系统最大处理能力的请求场景,限流值的依据是压测的真实能力数据,可以控制在最大处理能力的80%左右。在系统上线初始阶段,默认设置全局限流器。在无法估算限流大小的时候,可以将流量限制设置为一个最大值,限流器也可以起到流量梳理平滑流量的作用。 +* 服务端隔离仓:主要针对耗时请求进行配置,防止耗时请求占用其他请求的处理资源。 +* 客户端重试器:主要解决网络错误、服务上下线的短暂故障等进行快速重试,降低错误率。该重试器只针对发送请求失败的场景,不涉及接口幂等问题。 +* 客户端熔断器:主要解决实例故障客户端没感知的场景,实现实例的快速刷新和同步。 +* 客户端隔离仓:主要解决故障场景,比如数据库故障恢复、实例重启等,系统吞吐量下降的情况;或者微服务第一次启动、微服务长期没有请求突
(servicecomb-docs) branch master updated: add api first development (#329)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-docs.git The following commit(s) were added to refs/heads/master by this push: new 7f728bb add api first development (#329) 7f728bb is described below commit 7f728bbe4352a9d2ee88b5e2e6e639a49507e1ec Author: liubao68 AuthorDate: Thu Apr 25 15:08:38 2024 +0800 add api first development (#329) --- .../zh_CN/docs/featured-topics/secrets.md | 1 + .../featured-topics/secrets/api-first-flow.png | Bin 0 -> 44201 bytes .../docs/featured-topics/secrets/api-first.md | 149 + 3 files changed, 150 insertions(+) diff --git a/java-chassis-reference/zh_CN/docs/featured-topics/secrets.md b/java-chassis-reference/zh_CN/docs/featured-topics/secrets.md index dba7b6a..5a670b9 100644 --- a/java-chassis-reference/zh_CN/docs/featured-topics/secrets.md +++ b/java-chassis-reference/zh_CN/docs/featured-topics/secrets.md @@ -9,3 +9,4 @@ * [Java Chassis 3技术解密:易扩展的多种注册中心支持](secrets/registries.md) * [Java Chassis 3技术解密:与Spring Cloud的互操作](secrets/interoperability.md) * [Java Chassis 3技术解密:ZooKeeper注册和配置中心](secrets/zookeeper.md) +* [Java Chassis 3技术解密:契约优先(API First)开发](secrets/api-first.md) diff --git a/java-chassis-reference/zh_CN/docs/featured-topics/secrets/api-first-flow.png b/java-chassis-reference/zh_CN/docs/featured-topics/secrets/api-first-flow.png new file mode 100644 index 000..54178ac Binary files /dev/null and b/java-chassis-reference/zh_CN/docs/featured-topics/secrets/api-first-flow.png differ diff --git a/java-chassis-reference/zh_CN/docs/featured-topics/secrets/api-first.md b/java-chassis-reference/zh_CN/docs/featured-topics/secrets/api-first.md new file mode 100644 index 000..7f1e50a --- /dev/null +++ b/java-chassis-reference/zh_CN/docs/featured-topics/secrets/api-first.md @@ -0,0 +1,149 @@ +# Java Chassis 3技术解密:契约优先(API First)开发 + +契约优先(API First)开发是指应用程序开发过程中,将API设计作为第一优先级的任务。契约优先开发随着Web Services概念的发展而不断得到重视,特别是微服务架构出现以后,API设计成为影响功能开放、性能优化等问题的关键因素。常见的契约优先开发框架和模式有如下几种: + +* Web Services技术可以由设计人员先编写WSDL描述WEB服务内容,然后结合工具生成代码。WSDL可以进行分发,不同的语言都可以结合WSDL生成客户端。 +* gRPC技术可以由设计人员先编写IDL描述RPC服务内容,然后结合工具生成代码。gRPC主要解决服务内部之间的调用。 +* Spring Boot允许开发人员利用swagger工具,先编写Open API接口,然后通过工具生成RESTFul的服务端代码。 + +这些技术都要求设计人员掌握一种语言无关的描述语言(WSDL、IDL、Swagger等),并且通过工具生成具体语言的代码。它们支持的应用场景也有所差异,Web Service适合对外的WEB服务,gRPC适合对内的RPC服务。Java Chassis契约优先开发具备下面的几个改进: + +* 允许直接使用Java语言定义服务接口,不需要设计者掌握新的描述语言。 +* 同时定义Web服务接口和内部RPC接口。 + +和Spring Boot一样, Java Chassis的语言无关性描述语言仍然是Open API,通过Open API,可以满足跨语言和服务分发的要求。 + +## 契约优先开发的过程 + +契约优先开发可以涵盖设计、开发、测试、部署、运维等软件开发的全流程,通过契约可以实现不同环节的并行工作,从而提高开发效率。 一个简单的契约开发过程如下: + +![](api-first-flow.png) + +下面通过代码简单展示通过Java语义定义契约,并实现提供者和消费者的过程。 + +* 定义服务契约 + +```java +@RequestMapping(path = "/provider") +public interface ProviderService { + @GetMapping("/sayHello") + String sayHello(@RequestParam("name") String name); +} +``` + +* 定义提供者 + +```java +@RestSchema(schemaId = "ProviderController", schemaInterface = ProviderService.class) +public class ProviderController implements ProviderService { + @Override + public String sayHello(String name) { +return "Hello " + name; + } +} +``` + +* 定义消费者 + +```java +@Configuration +public class ProviderServiceConfiguration { + @Bean + public ProviderService providerService() { +return Invoker.createProxy("provider", "ProviderController", ProviderService.class); + } +} +``` + +使用RPC方式访问提供者。 + +```java +@RestSchema(schemaId = "ConsumerController", schemaInterface = ConsumerService.class) +public class ConsumerController implements ConsumerService { + private ProviderService providerService; + + @Autowired + public void setProviderService(ProviderService providerService) { +this.providerService = providerService; + } + + @Override + public String sayHello(String name) { +return providerService.sayHello(name); + } +} +``` + +* 服务分发和Web服务访问 + +提供者的服务定义会生成如下Open API信息 + +```yaml +openapi: 3.0.1 +info: + title: swagger definition for org.apache.servicecomb.samples.api.ProviderService + version: 1.0.0 +servers: +- url: /provider +paths: + /sayHello: +get: + operationId: sayHello + parameters: + - name: name +in: query +required: true +schema: + type: string + responses: +"200": + description: response of 200 + content: +application/json: + schema: +type: string +application/protobuf: + schema: +type: string +text/plain: + schema: +type: string +components: {} +``` +这个信息可以用于WEB服务访问,比如上面的信息可以使用 + +```text +GET /providers/sayHello?name=World +``` + +的HTTP请求来访问。 对于其他框架或者语言,也可以使用Open API生成对应的代码来访问。 + +## 服务治理 + +服务治理被设计为独立于开发过程,结合Op
(servicecomb-docs) branch master updated: remove some old docs (#328)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-docs.git The following commit(s) were added to refs/heads/master by this push: new c1182bb remove some old docs (#328) c1182bb is described below commit c1182bb7ef3b6e5d0ecbf4059ad5cb649b866b9d Author: liubao68 AuthorDate: Thu Apr 25 09:13:10 2024 +0800 remove some old docs (#328) --- .../docs/build-provider/service-configuration.md | 13 .../zh_CN/docs/catalog/build-consumer.md | 27 .../zh_CN/docs/catalog/build-provider.md | 40 .../zh_CN/docs/catalog/config.md | 2 - .../zh_CN/docs/catalog/data-conform.md | 0 .../zh_CN/docs/catalog/general-develop.md | 74 -- .../zh_CN/docs/catalog/securety.md | 0 .../zh_CN/docs/catalog/security.md | 5 -- .../zh_CN/docs/catalog/service-package-run.md | 6 -- java-chassis-reference/zh_CN/docs/catalog/start.md | 15 - .../zh_CN/docs/catalog/use-tool.md | 0 .../docs/config-reference/config-center-client.md | 22 --- .../zh_CN/docs/config-reference/kie-client.md | 22 --- .../docs/config-reference/service-center-client.md | 25 .../zh_CN/docs/registry/service-center.md | 2 - java-chassis-reference/zh_CN/mkdocs.yml| 3 - 16 files changed, 256 deletions(-) diff --git a/java-chassis-reference/zh_CN/docs/build-provider/service-configuration.md b/java-chassis-reference/zh_CN/docs/build-provider/service-configuration.md deleted file mode 100644 index 257fe78..000 --- a/java-chassis-reference/zh_CN/docs/build-provider/service-configuration.md +++ /dev/null @@ -1,13 +0,0 @@ -## [负载均衡策略](/build-provider/configuration/lb-strategy.html) -• ServiceComb提供了基于Ribbon的负载均衡方案,用户可以通过配置文件配置负载均衡策略,当前支持随机、顺序、基于响应时间的权值等多种负载均衡路由策略## [Service Center](https://github.com/apache/incubator-servicecomb-saga){:target="_blank"} - -## [限流策略](/build-provider/configuration/ratelimite-strategy.html) -• 用户在provider端使用限流策略,可以限制指定微服务向其发送请求的频率,达到限制每秒钟最大请求数量的效果。 - - -## [降级策略](/build-provider/configuration/parameter-validator.html) -• 降级策略是当服务请求异常时,微服务所采用的异常处理策略。 - - -## [参数效验](/build-provider/configuration/parameter-validator.html) -• 用户在provider端使用参数效验,可以对相应的参数输入要求预先进行设置,在接口实际调用前进行效验处理,达到控制参数输入标准的效果。 diff --git a/java-chassis-reference/zh_CN/docs/catalog/build-consumer.md b/java-chassis-reference/zh_CN/docs/catalog/build-consumer.md deleted file mode 100644 index c3f5fb8..000 --- a/java-chassis-reference/zh_CN/docs/catalog/build-consumer.md +++ /dev/null @@ -1,27 +0,0 @@ -## 使用RestTemplate开发服务消费者 -RestTemplate是Spring提供的RESTful访问接口,ServiceComb提供该接口的实现类用于服务的调用。 - -## 使用AsyncRestTemplate开发服务消费者 -AsyncRestTemplate 开发方式允许用户异步的进行服务调用。具体的业务流程和 RestTemplate 类似,只是这里以异步的形式进行服务的调用。 - -## 使用透明RPC方式开发服务消费者 - -透明RPC开发模式允许用户通过简单的java interface像本地调用一样进行服务调用。 - -## 使用服务契约 -当服务消费者调用服务提供者的服务时,需要获取服务契约。消费者有两种方式获取提供者的服务契约,一种是从服务的提供方离线获取契约文件,手工配置到项目中;另一种是从服务中心自动下载契约。 - -## 调用控制 - -### 实例级故障隔离 -实例级故障隔离功能允许在微服务的部分实例调用失败时,停止向故障实例发送请求,从而达到隔离故障实例的功能。 - -### 熔断策略 -熔断策略是对ServiceComb熔断功能的设置,用户通过配置熔断策略可以指定在何种条件下ServiceComb框架将终止发送请求。 - -### 限流策略 -用户在consumer端使用限流策略,可以限制发往指定微服务的请求的频率。 - -### 故障注入 -用户在consumer端使用故障注入,可以设置发往指定微服务的请求的时延和错误及其触发概率。 - diff --git a/java-chassis-reference/zh_CN/docs/catalog/build-provider.md b/java-chassis-reference/zh_CN/docs/catalog/build-provider.md deleted file mode 100644 index 156ec0a..000 --- a/java-chassis-reference/zh_CN/docs/catalog/build-provider.md +++ /dev/null @@ -1,40 +0,0 @@ -## [服务定义](/build-provider/definition/service-definition.html) -• 服务定义信息是微服务的身份标识,它定义了服务从属于哪个应用,以及名字和版本。服务定义信息中也可以有扩展信息,用于定义服务的属性元数据。 - - -## [定义服务契约](/build-provider/define-contract.html) -• 服务契约,指基于OpenAPI规范的微服务接口契约,是服务端与消费端对于接口的定义。java chassis提供了两种方式定义契约:code first和contract first。 - - -## [使用隐式契约](/build-provider/code-first.html) -• 降级策略是当服务请求异常时,微服务所采用的异常处理策略。 - - -## [使用 Swagger 注解](/build-provider/swagger-annotation.html) -• Swagger提供了一套注解用于描述接口契约,用户使用注解,可以在代码中增加对于契约的描述信息。ServiceComb支持其中的部分注解。 - - -## [用SpringMVC 开发微服务](/build-provider/springmvc.html) -• ServiceComb支持SpringMVC注解,允许使用SpringMVC风格开发微服务。建议参照着项目 SpringMVC进行详细阅读。 - -## [用JAX-RS开发微服务](/build-provider/jaxrs.html) -• ServiceComb支持开发者使用JAX-RS注解,使用JAX-RS模式开发服务。 - -## [用透明RPC开发微服务](/build-provider/transparent-rpc.html) -• 透明RPC开发模式是一种基于接口和接口实现的开发模式,服务的开发者不需要使用Spring MVC和JAX-RS注解。 - -## [接口定义和数据类型](/build-provider/swagger-annotation.html) -• ServiceComb-Java-Chassis建议接口定义遵循一个简单的原则:接口定义即接口使用说明,不用通过查看代码实现,就能识别如何调用这个接口。可以看出,这个原则站在使用者这边,以更容易被使用作为参考。ServiceComb会根据接口定义生成接口契约,符合这个原则的接口,生成的契约也是用户容易阅读的。 - -## [服务监听地址和发布地址](/build-provider/listen-address-and-publish-address.html) -•在JavaChassis中,服务的监听地址和发布地址是两个独立的概念,可以独立配置: - - 监听地址:指微服务实例启动时监听的地址。该配置项决定了可以通过哪些IP访问此服务。 - 发布地址:指微服务实例注册到服务中心的地址。其他的微服务实例会通过服务中心获取此实例的信息,根据发布地址访问
(servicecomb-java-chassis) branch master updated: update read me using api first example (#4306)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git The following commit(s) were added to refs/heads/master by this push: new 66b99e8f0 update read me using api first example (#4306) 66b99e8f0 is described below commit 66b99e8f080e134ee3800ba1b1d1f654ea182a6f Author: liubao68 AuthorDate: Wed Apr 24 14:10:20 2024 +0800 update read me using api first example (#4306) --- README.md| 77 ++-- README_ZH.md | 76 +-- 2 files changed, 70 insertions(+), 83 deletions(-) diff --git a/README.md b/README.md index 9e5f6f845..9c3e61802 100644 --- a/README.md +++ b/README.md @@ -6,8 +6,8 @@ Apache ServiceComb Java Chassis is a Software Development Kit (SDK) for rapid de | Release Train | Latest Version | Compiled JDK Version | Tested JDK Version | Open API | Notes| |||--||--|--| -| Java Chassis 3 | 3.0.1 | OpenJDK 17 | OpenJDK 17 | 3.0.x| Depends on Spring Boot 3 | -| Java Chassis 2 | 2.8.14 | OpenJDK 8| OpenJDK 8, 11, 17 | 2.0.x| Depends on Spring 5 | +| Java Chassis 3 | 3.1.0 | OpenJDK 17 | OpenJDK 17 | 3.0.x| Depends on Spring Boot 3 | +| Java Chassis 2 | 2.8.16 | OpenJDK 8| OpenJDK 8, 11, 17 | 2.0.x| Depends on Spring 5 | | Java Chassis 1 | 1.3.11 | OpenJDK 8| OpenJDK 8 | 2.0.x| End of Support | >>>NOTICE: Since Open API 3.0.x is not compatible with 2.0.x, Java Chassis 2 >>>and Java Chassis 1 can not @@ -15,63 +15,52 @@ Apache ServiceComb Java Chassis is a Software Development Kit (SDK) for rapid de >>>NOTICE: Java Chassis 1 reached its end of support now after it's first >>>release from 2018. -# Why use Java Chassis +# Quick Start -- **High performance** - - The transport capability of Java Chassis is based on [Vert.x](https://vertx.io), which enables Java Chassis to process - massive requests with relatively less hardware resources, and support [reactive develop style](https://www.reactivemanifesto.org). - -- **Native support for OpenAPI** - - Java Chassis describes the APIs of the microservices via [Swagger](https://swagger.io) natively, to help - developers to design microservices that comply to [OpenAPI standard](https://swagger.io/specification/v3/). - -- **Flexible develop style** - - Java Chassis allows developers to develop their microservice APIs in `SpringMVC`/`JAX-RS`/`Transparent RPC` styles, - and to send the request in `RPC`/`RestTemplate` styles. And there are three kind of build-in transport mode: - `Rest over Vertx`/`Rest over Servlet`/`Highway`. All of these features can be combined and replaced easily, - because they are decoupled and all based on the Swagger schema, which can provide high flexibility. - -- **Out-of-box microservice governance features** - - Java Chassis provides a lot of features for microservice governance and monitor. - -# Quick Start (Spring MVC) - -Provider service: +* Define API ```java -@RestSchema(schemaId = "ProviderController") -@RequestMapping(path = "/") -public class ProviderController { +@RequestMapping(path = "/provider") +public interface ProviderService { @GetMapping("/sayHello") - public String sayHello(@RequestParam("name") String name) { + String sayHello(@RequestParam("name") String name); +} +``` + +* Provider service +```java +@RestSchema(schemaId = "ProviderController", schemaInterface = ProviderService.class) +public class ProviderController implements ProviderService { + @Override + public String sayHello(String name) { return "Hello " + name; } } ``` -Consumer service: - -Declare Provider service interface to match the Provider method signature. (Method name, return type, parameter name, parameter type) +* Consumer service ```java -public interface ProviderService { - String sayHello(String name); +@Configuration +public class ProviderServiceConfiguration { + @Bean + public ProviderService providerService() { +return Invoker.createProxy("provider", "ProviderController", ProviderService.class); + } } ``` Invoke Provider service with RPC ```java -@RestSchema(schemaId = "ConsumerController") -@RequestMapping(path = "/") -public class ConsumerController { - @RpcReference(schemaId = "ProviderController", microserviceName = "provider") +@RestSchema(schemaId = "ConsumerController", schemaInterface = ConsumerService.class) +public class
(servicecomb-samples) branch master updated: update using API first development (#140)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-samples.git The following commit(s) were added to refs/heads/master by this push: new 7440575 update using API first development (#140) 7440575 is described below commit 7440575dae07b8202e2d6e14e3f25c3770e1da7c Author: liubao68 AuthorDate: Wed Apr 24 14:10:29 2024 +0800 update using API first development (#140) --- basic/{consumer => apis/consumer-api}/pom.xml | 20 +++-- .../servicecomb/samples/api/ConsumerService.java} | 13 --- basic/{consumer => apis}/pom.xml | 23 ++-- basic/{consumer => apis/provider-api}/pom.xml | 20 +++-- .../servicecomb/samples/api}/ProviderService.java | 11 -- basic/consumer/pom.xml | 10 + .../servicecomb/samples/ConsumerController.java| 25 +++--- ...vice.java => ProviderServiceConfiguration.java} | 13 --- basic/pom.xml | 3 ++- basic/provider/pom.xml | 5 + .../servicecomb/samples/ProviderController.java| 16 ++ 11 files changed, 78 insertions(+), 81 deletions(-) diff --git a/basic/consumer/pom.xml b/basic/apis/consumer-api/pom.xml similarity index 71% copy from basic/consumer/pom.xml copy to basic/apis/consumer-api/pom.xml index 53f15b2..4faa106 100644 --- a/basic/consumer/pom.xml +++ b/basic/apis/consumer-api/pom.xml @@ -1,3 +1,4 @@ +
(servicecomb-docs) branch master updated: update first example using api first (#327)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-docs.git The following commit(s) were added to refs/heads/master by this push: new 791eea1 update first example using api first (#327) 791eea1 is described below commit 791eea12963376eb9185d0208a5b0f75f6804308 Author: liubao68 AuthorDate: Wed Apr 24 11:55:07 2024 +0800 update first example using api first (#327) --- .../docs/featured-topics/secrets/zookeeper.md | 9 ++-- .../zh_CN/docs/start/first-sample.md | 60 +- 2 files changed, 40 insertions(+), 29 deletions(-) diff --git a/java-chassis-reference/zh_CN/docs/featured-topics/secrets/zookeeper.md b/java-chassis-reference/zh_CN/docs/featured-topics/secrets/zookeeper.md index a90c355..751dd4c 100644 --- a/java-chassis-reference/zh_CN/docs/featured-topics/secrets/zookeeper.md +++ b/java-chassis-reference/zh_CN/docs/featured-topics/secrets/zookeeper.md @@ -61,7 +61,7 @@ ZooKeeper自身被设计为一个高可靠的中间件,Java Chassis 3进一步 有观点认为, ZooKeeper不适合作为注册中心,一般的,CP系统都不适合作为注册中心,而AP作为注册中心才是最佳选择。 个人觉得这样的观点是片面而且非常不恰当的。 -从[ZooKeeper 并不适合做注册中心](https://blog.csdn.net/lk/article/details/109168239?spm=1001.2014.3001.5501) 和 [为什么我们要把服务注册发现改为阿里巴巴的Nacos而不用 ZooKeeper?](zoo-nacos) 摘取了几个核心观点: +从[ZooKeeper 并不适合做注册中心](https://blog.csdn.net/lk/article/details/109168239?spm=1001.2014.3001.5501) 和 [为什么我们要把服务注册发现改为阿里巴巴的Nacos而不用 ZooKeeper?](https://blog.csdn.net/u012921921/article/details/106521181/?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-1--blog-109168239.235^v43^pc_blog_bottom_relevance_base3=1001.2101.3001.4242.) 摘取了几个核心观点(后面简称“观点文章”): * 网络分区隔离情况下,ZooKeeper会导致服务间调用错误,也会导致新的服务无法注册,不适合作为注册中心。 * ZooKeeper所有写操作都在Leader进行,无法支持大规模微服务实例,不适合作为注册中心。 @@ -70,9 +70,9 @@ ZooKeeper自身被设计为一个高可靠的中间件,Java Chassis 3进一步 ### 关于网络分区隔离 -网络分区隔离的场景比较多,在[Java Chassis 3技术解密:注册中心分区隔离](zone-isolation.md)描述的场景下,Java Chassis能够保证服务之间的调用不受影响。在[为什么我们要把服务注册发现改为阿里巴巴的Nacos而不用 ZooKeeper?](zoo-nacos)提到的场景中,Java Chassis也能够保证服务之间的调用不受影响,但是服务无法注册。网络分区隔离场景下,核心需要讨论的问题变成是否需要允许服务进行注册/扩容?尽管可能存在争议,但我们的观点是系统出现部分故障的情况下,系统不应该扩容,而是尽可能维持处理能力不变,这样会使得故障恢复更加可控,从而减少系统恢复时间。 +网络分区隔离的场景比较多,在[Java Chassis 3技术解密:注册中心分区隔离](zone-isolation.md)描述的场景下,Java Chassis能够保证服务之间的调用不受影响。在观点文章提到的场景中,Java Chassis也能够保证服务之间的调用不受影响,但是服务无法注册。网络分区隔离场景下,核心需要讨论的问题变成是否需要允许服务进行注册/扩容?尽管可能存在争议,但我们的观点是系统出现部分故障的情况下,系统不应该扩容,而是尽可能维持处理能力不变,这样会使得故障恢复更加可控,从而减少系统恢复时间。 -[为什么我们要把服务注册发现改为阿里巴巴的Nacos而不用 ZooKeeper?](zoo-nacos)提到的场景相对于实际部署场景还过于简单,我们把它扩展到实际场景: +观点文章提到的场景相对于实际部署场景还过于简单,我们把它扩展到实际场景: ![](zookeeper-scale.png) @@ -90,6 +90,3 @@ ZooKeeper只有Leader可以写入,通过扩容Learner(Follower/Observer)提升 Java Chassis 3使用ZooKeeper作为注册中心是非常好的选择,ZooKeeper可以在应用系统中同时扮演注册、配置和选举等功能,能够极大的简化应用部署和服务依赖。CP一致性也使得常见故障场景下应用程序的行为具备更好的预测性。大规模系统可以采用微服务网关来提升系统韧性,降低系统爆炸半径。 - -zoo-nacos: https://blog.csdn.net/u012921921/article/details/106521181/?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-1--blog-109168239.235^v43^pc_blog_bottom_relevance_base3=1001.2101.3001.4242. - diff --git a/java-chassis-reference/zh_CN/docs/start/first-sample.md b/java-chassis-reference/zh_CN/docs/start/first-sample.md index 8e60e02..f73c2e6 100644 --- a/java-chassis-reference/zh_CN/docs/start/first-sample.md +++ b/java-chassis-reference/zh_CN/docs/start/first-sample.md @@ -142,14 +142,26 @@ public class ProviderApplication { ``` ### 编写服务 +本例子采用契约优先的开发方法。 -在工程中添加一个REST接口类用于接收请求: +首先定义服务接口: ```java +@RequestMapping(path = "/provider") +public interface ProviderService { + @GetMapping("/sayHello") + String sayHello(@RequestParam("name") String name); + + @GetMapping("/exampleConfig") + String exampleConfig(); +} +``` + +在工程中添加一个REST接口类用于接收请求: -@RestSchema(schemaId = "ProviderController") -@RequestMapping(path = "/") -public class ProviderController { +```java +@RestSchema(schemaId = "ProviderController", schemaInterface = ProviderService.class) +public class ProviderController implements ProviderService { private DynamicProperties dynamicProperties; private String example; @@ -161,13 +173,12 @@ public class ProviderController { value -> this.example = value, "not set"); } - // a very simple service to echo the request parameter - @GetMapping("/sayHello") - public String sayHello(@RequestParam("name") String name) { + @Override + public String sayHello(String name) { return "Hello " + name; } - @GetMapping("/exampleConfig") + @Override public String exampleConfig() { return example; } @@ -198,33 +209,36 @@ public class ProviderController { ### 调用服务 -在 Consumer 里面,演示了如何调用 Provider 的服务。 首先声明一个 PRC 接口, 该接口的方法名称、参数名称需要和服务端保持一致。 +在 Consumer 里面,演示了如何调用 Provider 的服务。 首先声明一个 PRC 接口的 Bean。 ```jav
(servicecomb-docs) branch master updated: add zookeeper docs (#326)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-docs.git The following commit(s) were added to refs/heads/master by this push: new d69cb48 add zookeeper docs (#326) d69cb48 is described below commit d69cb485e2d562bb144460009a47c42b914973f5 Author: liubao68 AuthorDate: Tue Apr 23 11:37:59 2024 +0800 add zookeeper docs (#326) --- .../zh_CN/docs/featured-topics/secrets.md | 2 +- .../featured-topics/secrets/zookeeper-scale.png| Bin 0 -> 13994 bytes .../docs/featured-topics/secrets/zookeeper.md | 95 + .../zh_CN/docs/registry/zookeeper.md | 30 +++ 4 files changed, 111 insertions(+), 16 deletions(-) diff --git a/java-chassis-reference/zh_CN/docs/featured-topics/secrets.md b/java-chassis-reference/zh_CN/docs/featured-topics/secrets.md index 41309d2..dba7b6a 100644 --- a/java-chassis-reference/zh_CN/docs/featured-topics/secrets.md +++ b/java-chassis-reference/zh_CN/docs/featured-topics/secrets.md @@ -8,4 +8,4 @@ * [Java Chassis 3技术解密:应用视角的配置管理](secrets/applied-config.md) * [Java Chassis 3技术解密:易扩展的多种注册中心支持](secrets/registries.md) * [Java Chassis 3技术解密:与Spring Cloud的互操作](secrets/interoperability.md) - +* [Java Chassis 3技术解密:ZooKeeper注册和配置中心](secrets/zookeeper.md) diff --git a/java-chassis-reference/zh_CN/docs/featured-topics/secrets/zookeeper-scale.png b/java-chassis-reference/zh_CN/docs/featured-topics/secrets/zookeeper-scale.png new file mode 100644 index 000..2921e26 Binary files /dev/null and b/java-chassis-reference/zh_CN/docs/featured-topics/secrets/zookeeper-scale.png differ diff --git a/java-chassis-reference/zh_CN/docs/featured-topics/secrets/zookeeper.md b/java-chassis-reference/zh_CN/docs/featured-topics/secrets/zookeeper.md new file mode 100644 index 000..a90c355 --- /dev/null +++ b/java-chassis-reference/zh_CN/docs/featured-topics/secrets/zookeeper.md @@ -0,0 +1,95 @@ +# Java Chassis 3技术解密:ZooKeeper注册和配置中心 + +[ZooKeeper](https://zookeeper.apache.org/) 是一个高可用的分布式协调系统,它也被广泛用于服务注册发现、服务配置等场景。 + +Java Chassis 3 使用 [Curator Service Discovery Extensions](https://curator.apache.org/docs/service-discovery) 实现注册发现。 + +## 注册和配置基本原理 + +使用ZooKeeper实现注册配置的原理比较简单,只需要将实例信息和配置信息作为合适的 key-value 对写入。注册场景使用下面的结构: + +``` +servicecomb: + registry: +${environment} + ${application}: +${service}: + ${instance-id}: 详细的注册内容 +``` + +配置场景使用下面的结构: + +``` +servicecomb: + config: +environment: + ${environment}: 详细的配置内容 +application: + ${environment}: +${application}: 详细的配置内容 +service: + ${environment}: +${application}: + ${service}: 详细的配置内容 +version: + ${environment}: +${application}: + ${service}: +${version}: 详细的配置内容 +tag: + ${environment}: +${application}: + ${service}: +${tag}: 详细的配置内容 +``` + +## 可靠性设计 + +ZooKeeper自身被设计为一个高可靠的中间件,Java Chassis 3进一步增强了其作为注册中心的可靠性,即使在ZooKeeper自身不可用的情况下,仍然不影响服务之间的调用,详细了解这个机制,可以参考[Java Chassis 3技术解密:注册中心分区隔离](zone-isolation.md)。 + +为了验证这部分可靠性,可以设计一个简单的测试场景: + +``` +测试工具 -> edge service -> consumer -> provider +``` + +启动 edge service、 consumer 和 provider, 通过测试工具请求接口。 然后停止 ZooKeeper, 并使用测试工具持续调用,可以发现这个过程中没有请求失败。 启动 Zookeeper, 服务注册信息恢复,这个过程中仍然没有请求失败。 + +当然,在ZooKeeper不可用的过程中,无法注册新的实例。 + +## 关于 Zookeeper 作为注册中心的深入讨论 + +有观点认为, ZooKeeper不适合作为注册中心,一般的,CP系统都不适合作为注册中心,而AP作为注册中心才是最佳选择。 个人觉得这样的观点是片面而且非常不恰当的。 + +从[ZooKeeper 并不适合做注册中心](https://blog.csdn.net/lk/article/details/109168239?spm=1001.2014.3001.5501) 和 [为什么我们要把服务注册发现改为阿里巴巴的Nacos而不用 ZooKeeper?](zoo-nacos) 摘取了几个核心观点: + +* 网络分区隔离情况下,ZooKeeper会导致服务间调用错误,也会导致新的服务无法注册,不适合作为注册中心。 +* ZooKeeper所有写操作都在Leader进行,无法支持大规模微服务实例,不适合作为注册中心。 + +下面简单讨论下这两个观点。 + +### 关于网络分区隔离 + +网络分区隔离的场景比较多,在[Java Chassis 3技术解密:注册中心分区隔离](zone-isolation.md)描述的场景下,Java Chassis能够保证服务之间的调用不受影响。在[为什么我们要把服务注册发现改为阿里巴巴的Nacos而不用 ZooKeeper?](zoo-nacos)提到的场景中,Java Chassis也能够保证服务之间的调用不受影响,但是服务无法注册。网络分区隔离场景下,核心需要讨论的问题变成是否需要允许服务进行注册/扩容?尽管可能存在争议,但我们的观点是系统出现部分故障的情况下,系统不应该扩容,而是尽可能维持处理能力不变,这样会使得故障恢复更加可控,从而减少系统恢复时间。 + +[为什么我们要把服务注册发现改为阿里巴巴的Nacos而不用 ZooKeeper?](zoo-nacos)提到的场景相对于实际部署场景还过于简单,我们把它扩展到实际场景: + +![](zookeeper-scale.png) + +实际场景除了保障单AZ内的请求闭环,还需要保证不同AZ的实例能够分担流量。当出现AZ网络隔离,由于每个AZ实例感知到的总的实例数减少,会触发弹性扩缩容,从而需要注册中心支持新实例注册。 但是本质上,这个场景系统的处理能力并没有降低,弹性扩缩容将会是一个错误的行为,这个错误的行为,会给系统资源的使用和故障恢复带来更多的不可预测因素。 + +### 关于性能 + +ZooKeeper只有Leader可以写入,通过扩容Learner(Follower/Observer)提升读取性能。注册配置中心的场景实际上是一个读要求高,写要求不高的场景, ZooKeeper很好的满足了写不频繁,读很频繁的要求。 最复杂的业务系统,ZooKeeper管理的实例个数在1以下,即使这些系统被设计为允许动态弹性扩缩容。超大规模的业务系统,一般微服务网关来提升系统韧性,并防止未知故障带来的爆炸半径扩大。 在前期[Java Chassis 3技术解密:与Spring Cloud的互操作](interoperability.md)分享了架构韧性的一些内容。 + +![](serialization-arch.png) + +因此,支持超大规模服务注册的场景,不具备大的现实意义。 关于超大规模实例管理的问题,可能更多来自于不恰当的架构设计或者微服务发现机制(比如早期Dubbo版本使用的基于接口的服务发现,实例个数和接口数量成正比)。 + +## 总结 + +Java Chassis 3使用ZooKeeper作为注册中心是非常好的选择,ZooKeeper可以在应用系
(servicecomb-java-chassis) branch master updated: [SCB-2873]Fix zookeeper default address is not correct (#4304)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git The following commit(s) were added to refs/heads/master by this push: new 4f27591e3 [SCB-2873]Fix zookeeper default address is not correct (#4304) 4f27591e3 is described below commit 4f27591e3fe78f68dd964a16ab636f588a5cdce4 Author: liubao68 AuthorDate: Mon Apr 22 11:02:10 2024 +0800 [SCB-2873]Fix zookeeper default address is not correct (#4304) --- .../java/org/apache/servicecomb/config/zookeeper/ZookeeperConfig.java | 2 +- .../servicecomb/registry/zookeeper/ZookeeperRegistryProperties.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dynamic-config/config-zookeeper/src/main/java/org/apache/servicecomb/config/zookeeper/ZookeeperConfig.java b/dynamic-config/config-zookeeper/src/main/java/org/apache/servicecomb/config/zookeeper/ZookeeperConfig.java index 074939c58..a1a86bc8e 100644 --- a/dynamic-config/config-zookeeper/src/main/java/org/apache/servicecomb/config/zookeeper/ZookeeperConfig.java +++ b/dynamic-config/config-zookeeper/src/main/java/org/apache/servicecomb/config/zookeeper/ZookeeperConfig.java @@ -38,7 +38,7 @@ public class ZookeeperConfig { } public String getConnectString() { -return environment.getProperty(PROPERTY_CONNECT_STRING); +return environment.getProperty(PROPERTY_CONNECT_STRING, "127.0.0.1:2181"); } public int getSessionTimeoutMillis() { diff --git a/service-registry/registry-zookeeper/src/main/java/org/apache/servicecomb/registry/zookeeper/ZookeeperRegistryProperties.java b/service-registry/registry-zookeeper/src/main/java/org/apache/servicecomb/registry/zookeeper/ZookeeperRegistryProperties.java index cea946d99..0f74278fb 100644 --- a/service-registry/registry-zookeeper/src/main/java/org/apache/servicecomb/registry/zookeeper/ZookeeperRegistryProperties.java +++ b/service-registry/registry-zookeeper/src/main/java/org/apache/servicecomb/registry/zookeeper/ZookeeperRegistryProperties.java @@ -21,7 +21,7 @@ public class ZookeeperRegistryProperties { private boolean ephemeral = true; - private String connectString = "zookeeper://127.0.0.1:2181"; + private String connectString = "127.0.0.1:2181"; private String authenticationSchema;
svn commit: r68638 - in /release/servicecomb/servicecomb-java-chassis: 2.8.15/ 2.8.16/ 3.0.2/ 3.1.0/
Author: liubao Date: Fri Apr 19 01:28:18 2024 New Revision: 68638 Log: release 2.8.16 and 3.1.0 Added: release/servicecomb/servicecomb-java-chassis/2.8.16/ release/servicecomb/servicecomb-java-chassis/2.8.16/apache-servicecomb-java-chassis-distribution-2.8.16-bin.zip (with props) release/servicecomb/servicecomb-java-chassis/2.8.16/apache-servicecomb-java-chassis-distribution-2.8.16-bin.zip.asc release/servicecomb/servicecomb-java-chassis/2.8.16/apache-servicecomb-java-chassis-distribution-2.8.16-bin.zip.sha512 release/servicecomb/servicecomb-java-chassis/2.8.16/apache-servicecomb-java-chassis-distribution-2.8.16-src.zip (with props) release/servicecomb/servicecomb-java-chassis/2.8.16/apache-servicecomb-java-chassis-distribution-2.8.16-src.zip.asc release/servicecomb/servicecomb-java-chassis/2.8.16/apache-servicecomb-java-chassis-distribution-2.8.16-src.zip.sha512 release/servicecomb/servicecomb-java-chassis/3.1.0/ release/servicecomb/servicecomb-java-chassis/3.1.0/apache-servicecomb-java-chassis-distribution-3.1.0-bin.zip (with props) release/servicecomb/servicecomb-java-chassis/3.1.0/apache-servicecomb-java-chassis-distribution-3.1.0-bin.zip.asc release/servicecomb/servicecomb-java-chassis/3.1.0/apache-servicecomb-java-chassis-distribution-3.1.0-bin.zip.sha512 release/servicecomb/servicecomb-java-chassis/3.1.0/apache-servicecomb-java-chassis-distribution-3.1.0-src.zip (with props) release/servicecomb/servicecomb-java-chassis/3.1.0/apache-servicecomb-java-chassis-distribution-3.1.0-src.zip.asc release/servicecomb/servicecomb-java-chassis/3.1.0/apache-servicecomb-java-chassis-distribution-3.1.0-src.zip.sha512 Removed: release/servicecomb/servicecomb-java-chassis/2.8.15/ release/servicecomb/servicecomb-java-chassis/3.0.2/ Added: release/servicecomb/servicecomb-java-chassis/2.8.16/apache-servicecomb-java-chassis-distribution-2.8.16-bin.zip == Binary file - no diff available. Propchange: release/servicecomb/servicecomb-java-chassis/2.8.16/apache-servicecomb-java-chassis-distribution-2.8.16-bin.zip -- svn:mime-type = application/octet-stream Added: release/servicecomb/servicecomb-java-chassis/2.8.16/apache-servicecomb-java-chassis-distribution-2.8.16-bin.zip.asc == --- release/servicecomb/servicecomb-java-chassis/2.8.16/apache-servicecomb-java-chassis-distribution-2.8.16-bin.zip.asc (added) +++ release/servicecomb/servicecomb-java-chassis/2.8.16/apache-servicecomb-java-chassis-distribution-2.8.16-bin.zip.asc Fri Apr 19 01:28:18 2024 @@ -0,0 +1,16 @@ +-BEGIN PGP SIGNATURE- + +iQIzBAABCgAdFiEEgr9EsxMxTagaNq1NQCyw93alAPoFAmYc1C0ACgkQQCyw93al +APoe7w/6AhxtECv6vxanDLr4Rz2gTIZsKPhZjD3zExUcnaux5sFi3G+a9tXgig75 +qAsb7HX0Ja6curIQAXr4FXnwftmq0A3vD14yCe4LpAW0D+JCPs459TAZZqHl1Im1 +NgJN/nKv3GHzxjRNIL5OpRDd6aGuefSEagXG8Kk+0eZjC9OWhT0K7erM/VIkNPax +8/Ghp4dNmDOvDa4MfyrtG65u0uBw1+wUwVMopS56qGxu2vfR2vfZ0qFWwZH+B2Mh +5TEnJxYnieE2oMG7TMaaQGcfGziu687Qw22Nxff5l40wkxJgmXttjeDb1Qw/UNV4 +6lJtder5jRUHtsfJQMTjNGbOo/fZcSThPhHEcBpQhjPbQBNHH2L+RCJz1phO9cFt +K2G8TbGe6FgFbGW9B0akhwmDadGqk918SchSw3d4CxfQmHqWg1j5p700lxC6sfMY +r4+6pq6ye0HRqOoJajCFaYTJI0rjqEmOsJpjUBg3AmRsl2To6AZGMfWc3JYwzp/w +5ifPZnOAFID3IUlRZusBidsNyZvYBE1L6vOwS71XA2c30DrPuzyFwGo/bjDnQYLy +99BWL7mhLz+wLDR50OhW/Cpjyn41A29j3J4tXysvyl7s/n8p14FUTms6WzcBTuF1 +AdF0KDnagMu5m66Rhd8I72hK3kBeLu9UHknD7UkYIMKA8AH9dcc= +=hS2F +-END PGP SIGNATURE- Added: release/servicecomb/servicecomb-java-chassis/2.8.16/apache-servicecomb-java-chassis-distribution-2.8.16-bin.zip.sha512 == --- release/servicecomb/servicecomb-java-chassis/2.8.16/apache-servicecomb-java-chassis-distribution-2.8.16-bin.zip.sha512 (added) +++ release/servicecomb/servicecomb-java-chassis/2.8.16/apache-servicecomb-java-chassis-distribution-2.8.16-bin.zip.sha512 Fri Apr 19 01:28:18 2024 @@ -0,0 +1 @@ +a8d4819e87a8638cc9c7ff70e4a7cfceabf8fd5cf4e785b9722c9de323325f239b9f2e3abb7f16dd54ab7700f10e7f2b7c79d371ab6f6e230d399c03fd063256 *apache-servicecomb-java-chassis-distribution-2.8.16-bin.zip Added: release/servicecomb/servicecomb-java-chassis/2.8.16/apache-servicecomb-java-chassis-distribution-2.8.16-src.zip == Binary file - no diff available. Propchange: release/servicecomb/servicecomb-java-chassis/2.8.16/apache-servicecomb-java-chassis-distribution-2.8.16-src.zip -- svn:mime-type = application/octet-stream Added: release/servicecomb/servicecomb-java-chassis/2.8.16/apache-servicecomb-java-chassis-distribution-2.8.16-src.zip.asc
(servicecomb-docs) branch master updated: add documents for zookeeper (#325)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-docs.git The following commit(s) were added to refs/heads/master by this push: new d984182 add documents for zookeeper (#325) d984182 is described below commit d984182c1d512ca146b7b87c668175b08004c3ce Author: liubao68 AuthorDate: Tue Apr 16 16:24:22 2024 +0800 add documents for zookeeper (#325) --- java-chassis-reference/zh_CN/docs/config/apollo.md | 27 +++ .../zh_CN/docs/config/config-service.md| 185 - java-chassis-reference/zh_CN/docs/config/cse1.md | 40 + .../zh_CN/docs/config/general-config.md| 4 +- java-chassis-reference/zh_CN/docs/config/kie.md| 54 ++ java-chassis-reference/zh_CN/docs/config/nacos.md | 50 ++ .../zh_CN/docs/config/zookeeper.md | 83 + .../zh_CN/docs/registry/nacos.md | 4 +- .../zh_CN/docs/registry/service-center.md | 4 +- .../zh_CN/docs/registry/zookeeper.md | 57 +++ java-chassis-reference/zh_CN/mkdocs.yml| 11 +- 11 files changed, 326 insertions(+), 193 deletions(-) diff --git a/java-chassis-reference/zh_CN/docs/config/apollo.md b/java-chassis-reference/zh_CN/docs/config/apollo.md new file mode 100644 index 000..e498151 --- /dev/null +++ b/java-chassis-reference/zh_CN/docs/config/apollo.md @@ -0,0 +1,27 @@ +# 使用 Apollo + +>>> 注意:本实现作为适配 Apollo 的参考,整体逻辑功能和设计规格不完善,不建议在生产环境使用。 如果在生产环境使用,建议基于 Apollo 提供的 SDK 自行扩展实现。 + +[Apollo](https://github.com/ctripcorp/apollo) 是携程框架部门研发的分布式配置中心。 Apollo的下载安装请参考官网介绍。 + +```xml + + org.apache.servicecomb + config-apollo + +``` + +然后在配置文件 microservice.yaml 中增加如下配置项: + +```yaml +apollo: + config: +serverUri: http://127.0.0.1:8070 +serviceName: apollo-test +env: DEV +clusters: test-cluster +namespace: application +token: xxx +refreshInterval: 30 +firstRefreshInterval: 0 +``` diff --git a/java-chassis-reference/zh_CN/docs/config/config-service.md b/java-chassis-reference/zh_CN/docs/config/config-service.md deleted file mode 100644 index 02988ee..000 --- a/java-chassis-reference/zh_CN/docs/config/config-service.md +++ /dev/null @@ -1,185 +0,0 @@ -# 配置中心参考 - -配置中心是微服务架构下一个非常重要的中间件,通过配置中心用户可以增加和删除配置信息,配置信息会通过不同的通知机制, 将配置的变化推送到微服务实例。 Java Chassis 允许用户使用不同的配置中心, 并支持多个配置中心共存。 - -## 使用 Kie - -* 下载安装 - - 可以通过 [Kie官网](https://kie.readthedocs.io/en/latest/get-started.html) 下载和安装Kie。华为云提供了一个集成注册中心的本地版本,并提供了友好的界面,可以通过 [华为云](https://support.huaweicloud.com/devg-cse/cse_04_0046.html) 下载和使用。 - - -* 开发使用 - - 在 java-chassis 中使用 Kie, 需要引入下面的依赖: - -```xml - - org.apache.servicecomb - config-kie - -``` - - 然后在配置文件 microservice.yaml 中增加如下配置项: - -```yaml -servicecomb: - kie: -serverUri: http://127.0.0.1:30110 -``` - - -* 使用配置中心增加配置 - - 客户端默认会读取下面几个层次的配置: - - * 应用级配置:Label只包含environment、app,并且与微服务的环境、应用匹配的配置。 - * 服务级配置:Label只包含environment、app、service,并且与微服务的环境、应用、微服务名称匹配的配置。 - * 版本级配置:Label只包含environment、app、service、version,并且与微服务的环境、应用、微服务名称、版本匹配的配置。 - * 自定义配置:Label包含custom-label, 并且与 custom-value匹配的配置。 - - 上述的配置级别,优先级从低到高。 Kie 的 yaml 和 properties 类型会映射为多个配置项, 其他类型,比如 json, text, 只会映射为一个配置项。开发者需要读取配置项自己解析内容。 - - -* 配置项参考 - -|配置项名| 含义 | 缺省值 | -||-|---| -|servicecomb.kie.serverUri| servicecomb-kie访问地址,格式为`http(s)://{ip}:{port}`,以`,`分隔多个地址 | 空 | -|servicecomb.kie.enableLongPolling| Long Polling 模式是否开启 | true| -|servicecomb.kie.pollingWaitTime| Long Polling 模式下等待时间,单位为秒 | 10 | -|servicecomb.kie.firstPullRequired| 启动的时候第一次查询配置失败,是否终止启动。 | true| -|servicecomb.kie.domainName| 区域名称 | default | -|servicecomb.kie.refresh_interval| Pull 模式下刷新配置项的时间间隔,单位为毫秒。 | 15000 | -|servicecomb.kie.firstRefreshInterval| Pull 模式下启动过程中首次刷新时间间隔,单位为毫秒。 | 3000| -|servicecomb.kie.enableAppConfig| 是否开启应用配置 | true| -|servicecomb.kie.enableServiceConfig| 是否开启服务配置 | true| -|servicecomb.kie.enableVersionConfig| 是否开启版本配置 | true| -|servicecomb.kie.enableVersionConfig| 是否开启自定义配置 | true| -|servicecomb.kie.customLabel| 自定义配置的Label | public| -|servicecomb.kie.customLabelValue| 自定义配置的Value | 空| - - -## 使用 nacos - -* 下载安装 - - 可以通过 [nacos官网](https://github.com/alibaba/nacos) 下载和安装 Nacos。 - - - -* 开发使用 -使用nacos,需要在项目中引入如下依赖: - -```xml - - org.apache.servicecomb - config-nacos - -``` - -然后在配置文件 microservice.yaml 中增加如下配置项: - -```yaml -servicecomb: - nacos: -serverAddr: http://127.0.0.1:8848 -``` - - -* 使用配置中心增加配置 - - Nacos的namespa
svn commit: r68524 - in /dev/servicecomb/servicecomb-java-chassis: 2.8.15/ 2.8.16/ 3.0.2/ 3.1.0/
Author: liubao Date: Mon Apr 15 09:32:10 2024 New Revision: 68524 Log: release 2.8.16/3.1.0 Added: dev/servicecomb/servicecomb-java-chassis/2.8.16/ dev/servicecomb/servicecomb-java-chassis/2.8.16/apache-servicecomb-java-chassis-distribution-2.8.16-bin.zip (with props) dev/servicecomb/servicecomb-java-chassis/2.8.16/apache-servicecomb-java-chassis-distribution-2.8.16-bin.zip.asc dev/servicecomb/servicecomb-java-chassis/2.8.16/apache-servicecomb-java-chassis-distribution-2.8.16-bin.zip.sha512 dev/servicecomb/servicecomb-java-chassis/2.8.16/apache-servicecomb-java-chassis-distribution-2.8.16-src.zip (with props) dev/servicecomb/servicecomb-java-chassis/2.8.16/apache-servicecomb-java-chassis-distribution-2.8.16-src.zip.asc dev/servicecomb/servicecomb-java-chassis/2.8.16/apache-servicecomb-java-chassis-distribution-2.8.16-src.zip.sha512 dev/servicecomb/servicecomb-java-chassis/3.1.0/ dev/servicecomb/servicecomb-java-chassis/3.1.0/apache-servicecomb-java-chassis-distribution-3.1.0-bin.zip (with props) dev/servicecomb/servicecomb-java-chassis/3.1.0/apache-servicecomb-java-chassis-distribution-3.1.0-bin.zip.asc dev/servicecomb/servicecomb-java-chassis/3.1.0/apache-servicecomb-java-chassis-distribution-3.1.0-bin.zip.sha512 dev/servicecomb/servicecomb-java-chassis/3.1.0/apache-servicecomb-java-chassis-distribution-3.1.0-src.zip (with props) dev/servicecomb/servicecomb-java-chassis/3.1.0/apache-servicecomb-java-chassis-distribution-3.1.0-src.zip.asc dev/servicecomb/servicecomb-java-chassis/3.1.0/apache-servicecomb-java-chassis-distribution-3.1.0-src.zip.sha512 Removed: dev/servicecomb/servicecomb-java-chassis/2.8.15/ dev/servicecomb/servicecomb-java-chassis/3.0.2/ Added: dev/servicecomb/servicecomb-java-chassis/2.8.16/apache-servicecomb-java-chassis-distribution-2.8.16-bin.zip == Binary file - no diff available. Propchange: dev/servicecomb/servicecomb-java-chassis/2.8.16/apache-servicecomb-java-chassis-distribution-2.8.16-bin.zip -- svn:mime-type = application/octet-stream Added: dev/servicecomb/servicecomb-java-chassis/2.8.16/apache-servicecomb-java-chassis-distribution-2.8.16-bin.zip.asc == --- dev/servicecomb/servicecomb-java-chassis/2.8.16/apache-servicecomb-java-chassis-distribution-2.8.16-bin.zip.asc (added) +++ dev/servicecomb/servicecomb-java-chassis/2.8.16/apache-servicecomb-java-chassis-distribution-2.8.16-bin.zip.asc Mon Apr 15 09:32:10 2024 @@ -0,0 +1,16 @@ +-BEGIN PGP SIGNATURE- + +iQIzBAABCgAdFiEEgr9EsxMxTagaNq1NQCyw93alAPoFAmYc1C0ACgkQQCyw93al +APoe7w/6AhxtECv6vxanDLr4Rz2gTIZsKPhZjD3zExUcnaux5sFi3G+a9tXgig75 +qAsb7HX0Ja6curIQAXr4FXnwftmq0A3vD14yCe4LpAW0D+JCPs459TAZZqHl1Im1 +NgJN/nKv3GHzxjRNIL5OpRDd6aGuefSEagXG8Kk+0eZjC9OWhT0K7erM/VIkNPax +8/Ghp4dNmDOvDa4MfyrtG65u0uBw1+wUwVMopS56qGxu2vfR2vfZ0qFWwZH+B2Mh +5TEnJxYnieE2oMG7TMaaQGcfGziu687Qw22Nxff5l40wkxJgmXttjeDb1Qw/UNV4 +6lJtder5jRUHtsfJQMTjNGbOo/fZcSThPhHEcBpQhjPbQBNHH2L+RCJz1phO9cFt +K2G8TbGe6FgFbGW9B0akhwmDadGqk918SchSw3d4CxfQmHqWg1j5p700lxC6sfMY +r4+6pq6ye0HRqOoJajCFaYTJI0rjqEmOsJpjUBg3AmRsl2To6AZGMfWc3JYwzp/w +5ifPZnOAFID3IUlRZusBidsNyZvYBE1L6vOwS71XA2c30DrPuzyFwGo/bjDnQYLy +99BWL7mhLz+wLDR50OhW/Cpjyn41A29j3J4tXysvyl7s/n8p14FUTms6WzcBTuF1 +AdF0KDnagMu5m66Rhd8I72hK3kBeLu9UHknD7UkYIMKA8AH9dcc= +=hS2F +-END PGP SIGNATURE- Added: dev/servicecomb/servicecomb-java-chassis/2.8.16/apache-servicecomb-java-chassis-distribution-2.8.16-bin.zip.sha512 == --- dev/servicecomb/servicecomb-java-chassis/2.8.16/apache-servicecomb-java-chassis-distribution-2.8.16-bin.zip.sha512 (added) +++ dev/servicecomb/servicecomb-java-chassis/2.8.16/apache-servicecomb-java-chassis-distribution-2.8.16-bin.zip.sha512 Mon Apr 15 09:32:10 2024 @@ -0,0 +1 @@ +a8d4819e87a8638cc9c7ff70e4a7cfceabf8fd5cf4e785b9722c9de323325f239b9f2e3abb7f16dd54ab7700f10e7f2b7c79d371ab6f6e230d399c03fd063256 *apache-servicecomb-java-chassis-distribution-2.8.16-bin.zip Added: dev/servicecomb/servicecomb-java-chassis/2.8.16/apache-servicecomb-java-chassis-distribution-2.8.16-src.zip == Binary file - no diff available. Propchange: dev/servicecomb/servicecomb-java-chassis/2.8.16/apache-servicecomb-java-chassis-distribution-2.8.16-src.zip -- svn:mime-type = application/octet-stream Added: dev/servicecomb/servicecomb-java-chassis/2.8.16/apache-servicecomb-java-chassis-distribution-2.8.16-src.zip.asc == --- dev/servicecomb/servicecomb-java-chassis/2.8.16
(servicecomb-java-chassis) tag 3.1.0 created (now cb9c34759)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a change to tag 3.1.0 in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git at cb9c34759 (commit) No new revisions were added by this update.
(servicecomb-java-chassis) tag 2.8.16 created (now a267b41e5)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a change to tag 2.8.16 in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git at a267b41e5 (commit) No new revisions were added by this update.
(servicecomb-java-chassis) branch 2.8.x updated: [SCB-2872]Fix idle timeout for read and write is not properly set problem
This is an automated email from the ASF dual-hosted git repository. liubao pushed a commit to branch 2.8.x in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git The following commit(s) were added to refs/heads/2.8.x by this push: new a267b41e5 [SCB-2872]Fix idle timeout for read and write is not properly set problem a267b41e5 is described below commit a267b41e5b0e7fdab52c95c1083cd7de44bc1e5c Author: liubao68 AuthorDate: Mon Apr 15 10:50:14 2024 +0800 [SCB-2872]Fix idle timeout for read and write is not properly set problem --- .../foundation/vertx/client/http/HttpClientOptionsSPI.java| 2 -- .../servicecomb/transport/rest/vertx/RestServerVerticle.java | 8 +--- 2 files changed, 1 insertion(+), 9 deletions(-) diff --git a/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/client/http/HttpClientOptionsSPI.java b/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/client/http/HttpClientOptionsSPI.java index 14b5cbed1..7a483fe96 100644 --- a/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/client/http/HttpClientOptionsSPI.java +++ b/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/client/http/HttpClientOptionsSPI.java @@ -108,8 +108,6 @@ public interface HttpClientOptionsSPI { httpClientOptions.setProtocolVersion(spi.getHttpVersion()); httpClientOptions.setConnectTimeout(spi.getConnectTimeoutInMillis()); httpClientOptions.setIdleTimeout(spi.getIdleTimeoutInSeconds()); -httpClientOptions.setReadIdleTimeout(spi.getIdleTimeoutInSeconds()); -httpClientOptions.setWriteIdleTimeout(spi.getIdleTimeoutInSeconds()); httpClientOptions.setTryUseCompression(spi.isTryUseCompression()); httpClientOptions.setMaxWaitQueueSize(spi.getMaxWaitQueueSize()); httpClientOptions.setMaxPoolSize(spi.getMaxPoolSize()); diff --git a/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/RestServerVerticle.java b/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/RestServerVerticle.java index 1ec8b1489..c9266b180 100644 --- a/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/RestServerVerticle.java +++ b/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/RestServerVerticle.java @@ -68,14 +68,12 @@ public class RestServerVerticle extends AbstractVerticle { private static final String SSL_KEY = "rest.provider"; - private Endpoint endpoint; - private URIEndpointObject endpointObject; @Override public void init(Vertx vertx, Context context) { super.init(vertx, context); -this.endpoint = (Endpoint) context.config().getValue(AbstractTransport.ENDPOINT_KEY); +Endpoint endpoint = (Endpoint) context.config().getValue(AbstractTransport.ENDPOINT_KEY); this.endpointObject = (URIEndpointObject) endpoint.getAddress(); } @@ -271,8 +269,6 @@ public class RestServerVerticle extends AbstractVerticle { serverOptions.setUseAlpn(TransportConfig.getUseAlpn()) .setHttp2ConnectionWindowSize(TransportConfig.getHttp2ConnectionWindowSize()) .setIdleTimeout(TransportConfig.getHttp2ConnectionIdleTimeoutInSeconds()) - .setReadIdleTimeout(TransportConfig.getHttp2ConnectionIdleTimeoutInSeconds()) - .setWriteIdleTimeout(TransportConfig.getHttp2ConnectionIdleTimeoutInSeconds()) .setInitialSettings(new Http2Settings().setPushEnabled(TransportConfig.getPushEnabled()) .setMaxConcurrentStreams(TransportConfig.getMaxConcurrentStreams()) .setHeaderTableSize(TransportConfig.getHttp2HeaderTableSize()) @@ -282,8 +278,6 @@ public class RestServerVerticle extends AbstractVerticle { ); } else { serverOptions.setIdleTimeout(TransportConfig.getConnectionIdleTimeoutInSeconds()); - serverOptions.setReadIdleTimeout(TransportConfig.getConnectionIdleTimeoutInSeconds()); - serverOptions.setWriteIdleTimeout(TransportConfig.getConnectionIdleTimeoutInSeconds()); } if (endpointObject.isSslEnabled()) { SSLOptionFactory factory =
(servicecomb-java-chassis) branch master updated: [SCB-2872]Fix idle timeout for read and write is not properly set problem (#4297)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git The following commit(s) were added to refs/heads/master by this push: new cb9c34759 [SCB-2872]Fix idle timeout for read and write is not properly set problem (#4297) cb9c34759 is described below commit cb9c34759d1602b0f651bad150cad2eae3fdec1a Author: liubao68 AuthorDate: Mon Apr 15 09:51:21 2024 +0800 [SCB-2872]Fix idle timeout for read and write is not properly set problem (#4297) --- .../foundation/vertx/client/http/HttpClientOptionsSPI.java| 2 -- .../servicecomb/transport/rest/vertx/RestServerVerticle.java | 11 ++- 2 files changed, 2 insertions(+), 11 deletions(-) diff --git a/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/client/http/HttpClientOptionsSPI.java b/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/client/http/HttpClientOptionsSPI.java index 1545081a5..78a12d099 100644 --- a/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/client/http/HttpClientOptionsSPI.java +++ b/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/client/http/HttpClientOptionsSPI.java @@ -103,8 +103,6 @@ public interface HttpClientOptionsSPI { httpClientOptions.setProtocolVersion(spi.getHttpVersion()); httpClientOptions.setConnectTimeout(spi.getConnectTimeoutInMillis()); httpClientOptions.setIdleTimeout(spi.getIdleTimeoutInSeconds()); -httpClientOptions.setReadIdleTimeout(spi.getIdleTimeoutInSeconds()); -httpClientOptions.setWriteIdleTimeout(spi.getIdleTimeoutInSeconds()); httpClientOptions.setTryUseCompression(spi.isTryUseCompression()); httpClientOptions.setMaxWaitQueueSize(spi.getMaxWaitQueueSize()); httpClientOptions.setMaxPoolSize(spi.getMaxPoolSize()); diff --git a/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/RestServerVerticle.java b/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/RestServerVerticle.java index 93920dbc1..c72e50435 100644 --- a/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/RestServerVerticle.java +++ b/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/RestServerVerticle.java @@ -67,14 +67,12 @@ public class RestServerVerticle extends AbstractVerticle { private static final String SSL_KEY = "rest.provider"; - private Endpoint endpoint; - private URIEndpointObject endpointObject; @Override public void init(Vertx vertx, Context context) { super.init(vertx, context); -this.endpoint = (Endpoint) context.config().getValue(AbstractTransport.ENDPOINT_KEY); +Endpoint endpoint = (Endpoint) context.config().getValue(AbstractTransport.ENDPOINT_KEY); this.endpointObject = (URIEndpointObject) endpoint.getAddress(); } @@ -137,9 +135,8 @@ public class RestServerVerticle extends AbstractVerticle { return; } HttpServerResponse response = ctx.response(); - if (ctx.failure() instanceof InvocationException) { + if (ctx.failure() instanceof InvocationException exception) { // ServiceComb defined exception -InvocationException exception = (InvocationException) ctx.failure(); response.setStatusCode(exception.getStatusCode()); response.setStatusMessage(exception.getReasonPhrase()); response.end(exception.getErrorData().toString()); @@ -270,8 +267,6 @@ public class RestServerVerticle extends AbstractVerticle { serverOptions.setUseAlpn(TransportConfig.getUseAlpn()) .setHttp2ConnectionWindowSize(TransportConfig.getHttp2ConnectionWindowSize()) .setIdleTimeout(TransportConfig.getHttp2ConnectionIdleTimeoutInSeconds()) - .setReadIdleTimeout(TransportConfig.getHttp2ConnectionIdleTimeoutInSeconds()) - .setWriteIdleTimeout(TransportConfig.getHttp2ConnectionIdleTimeoutInSeconds()) .setInitialSettings(new Http2Settings().setPushEnabled(TransportConfig.getPushEnabled()) .setMaxConcurrentStreams(TransportConfig.getMaxConcurrentStreams()) .setHeaderTableSize(TransportConfig.getHttp2HeaderTableSize()) @@ -281,8 +276,6 @@ public class RestServerVerticle extends AbstractVerticle { ); } else { serverOptions.setIdleTimeout(TransportConfig.getConnectionIdleTimeoutInSeconds()); - serverOptions.setReadIdleTimeout(TransportConfig.getConnectionIdleTimeoutInSeconds()); - serverOptions.setWriteIdleTimeout(TransportConfig.getConnectionIdleTimeoutInSeconds()); } if (endpointObject.isSslEnabled()) { SSLOptionFactory factory =
(servicecomb-java-chassis) branch Branch_2.7.2 deleted (was 154f458f0)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a change to branch Branch_2.7.2 in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git was 154f458f0 release java chassis 2.7.2 The revisions that were on this branch are still contained in other references; therefore, this change does not discard any commits from the repository.
(servicecomb-java-chassis) branch Branch_2.7.7 deleted (was a23824a8e)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a change to branch Branch_2.7.7 in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git was a23824a8e [SCB-2509] Bump vertx version from 4.2.7 to 4.3.2 (#3244) The revisions that were on this branch are still contained in other references; therefore, this change does not discard any commits from the repository.
(servicecomb-java-chassis) branch release/1.3.0 deleted (was 3896be3af)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a change to branch release/1.3.0 in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git was 3896be3af release 1.3.0 The revisions that were on this branch are still contained in other references; therefore, this change does not discard any commits from the repository.
(servicecomb-java-chassis) branch test_case deleted (was fb290c060)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a change to branch test_case in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git was fb290c060 add test case This change permanently discards the following revisions: discard fb290c060 add test case
(servicecomb-java-chassis) branch dependabot/maven/com.google.protobuf-protobuf-java-3.25.1 deleted (was 49809c6ee)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a change to branch dependabot/maven/com.google.protobuf-protobuf-java-3.25.1 in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git was 49809c6ee Bump com.google.protobuf:protobuf-java from 3.23.4 to 3.25.1 The revisions that were on this branch are still contained in other references; therefore, this change does not discard any commits from the repository.
(servicecomb-java-chassis) branch multi-protocol deleted (was edd9d79b5)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a change to branch multi-protocol in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git was edd9d79b5 [SCB-2805]change default settings for http keepalive timeout and idle timeout (#3927) The revisions that were on this branch are still contained in other references; therefore, this change does not discard any commits from the repository.
(servicecomb-java-chassis) branch release/1.2.0 deleted (was 04c882beb)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a change to branch release/1.2.0 in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git was 04c882beb [SCB-1240] allowed one prometheus cluster support multiple apps The revisions that were on this branch are still contained in other references; therefore, this change does not discard any commits from the repository.
(servicecomb-java-chassis) branch url_pattern deleted (was e8e6ad0db)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a change to branch url_pattern in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git was e8e6ad0db [#3893]fix host name too long and unit test error The revisions that were on this branch are still contained in other references; therefore, this change does not discard any commits from the repository.
(servicecomb-java-chassis) branch dependabot/maven/dyuproject-protostuff.version-1.2.2 deleted (was a8be2d0cc)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a change to branch dependabot/maven/dyuproject-protostuff.version-1.2.2 in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git was a8be2d0cc Bump dyuproject-protostuff.version from 1.0.7.fixed.3500 to 1.2.2 The revisions that were on this branch are still contained in other references; therefore, this change does not discard any commits from the repository.
(servicecomb-java-chassis) branch release/1.1.0 deleted (was 1fa249993)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a change to branch release/1.1.0 in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git was 1fa249993 Cut 1.1.0 release The revisions that were on this branch are still contained in other references; therefore, this change does not discard any commits from the repository.
(servicecomb-java-chassis) branch Branch_2.7.3 deleted (was f8c6a2c2b)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a change to branch Branch_2.7.3 in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git was f8c6a2c2b release java chassis 2.7.3 The revisions that were on this branch are still contained in other references; therefore, this change does not discard any commits from the repository.
(servicecomb-java-chassis) branch Branch_2.7.1 deleted (was 3487bb807)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a change to branch Branch_2.7.1 in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git was 3487bb807 release java chassis 2.7.1 The revisions that were on this branch are still contained in other references; therefore, this change does not discard any commits from the repository.
(servicecomb-java-chassis) branch master updated (a81d546ab -> 0479ea7bf)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a change to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git from a81d546ab Bump io.fabric8:docker-maven-plugin from 0.43.4 to 0.44.0 (#4245) add 0479ea7bf Bump spring boot from 3.0.7 to 3.1.10 (#4293) No new revisions were added by this update. Summary of changes: dependencies/default/pom.xml | 17 - pom.xml | 4 ++-- 2 files changed, 18 insertions(+), 3 deletions(-)
(servicecomb-java-chassis) branch master updated: Bump io.fabric8:docker-maven-plugin from 0.43.4 to 0.44.0 (#4245)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git The following commit(s) were added to refs/heads/master by this push: new a81d546ab Bump io.fabric8:docker-maven-plugin from 0.43.4 to 0.44.0 (#4245) a81d546ab is described below commit a81d546ab6c69b42722e4149590b5e9ad90c6458 Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> AuthorDate: Wed Apr 3 09:26:01 2024 +0800 Bump io.fabric8:docker-maven-plugin from 0.43.4 to 0.44.0 (#4245) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index ca4a7f37a..6b4b154e7 100644 --- a/pom.xml +++ b/pom.xml @@ -47,7 +47,7 @@ 3.3.1 4.3.0 9.0.9 -0.43.4 +0.44.0 3.2.0 3.2.2 0.8.11
(servicecomb-java-chassis) branch master updated (d055223c2 -> a3a54c012)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a change to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git from d055223c2 Bump org.java-websocket:Java-WebSocket from 1.5.5 to 1.5.6 (#4252) add a3a54c012 Bump org.assertj:assertj-core from 3.25.2 to 3.25.3 (#4247) No new revisions were added by this update. Summary of changes: dependencies/default/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
(servicecomb-java-chassis) branch master updated (3838cd7c3 -> 03b5873da)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a change to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git from 3838cd7c3 Bump io.swagger.core.v3:swagger-core-jakarta from 2.2.20 to 2.2.21 (#4279) add 03b5873da Bump org.apache.maven.plugins:maven-gpg-plugin from 3.1.0 to 3.2.2 (#4278) No new revisions were added by this update. Summary of changes: pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
(servicecomb-java-chassis) branch master updated (e71070c47 -> d055223c2)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a change to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git from e71070c47 Bump io.netty:netty-bom from 4.1.106.Final to 4.1.108.Final (#4277) add d055223c2 Bump org.java-websocket:Java-WebSocket from 1.5.5 to 1.5.6 (#4252) No new revisions were added by this update. Summary of changes: dependencies/default/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
(servicecomb-java-chassis) branch master updated (03b5873da -> e71070c47)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a change to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git from 03b5873da Bump org.apache.maven.plugins:maven-gpg-plugin from 3.1.0 to 3.2.2 (#4278) add e71070c47 Bump io.netty:netty-bom from 4.1.106.Final to 4.1.108.Final (#4277) No new revisions were added by this update. Summary of changes: dependencies/default/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
(servicecomb-java-chassis) branch master updated (95e117d92 -> 3838cd7c3)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a change to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git from 95e117d92 Bump org.apache.maven.plugins:maven-compiler-plugin (#4280) add 3838cd7c3 Bump io.swagger.core.v3:swagger-core-jakarta from 2.2.20 to 2.2.21 (#4279) No new revisions were added by this update. Summary of changes: dependencies/default/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
(servicecomb-java-chassis) branch master updated: Bump org.apache.maven.plugins:maven-compiler-plugin (#4280)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git The following commit(s) were added to refs/heads/master by this push: new 95e117d92 Bump org.apache.maven.plugins:maven-compiler-plugin (#4280) 95e117d92 is described below commit 95e117d92a34e6a50eb086e9e38c5b0e6e85801c Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> AuthorDate: Wed Apr 3 09:23:45 2024 +0800 Bump org.apache.maven.plugins:maven-compiler-plugin (#4280) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 21677fd2d..0fddf2e13 100644 --- a/pom.xml +++ b/pom.xml @@ -53,7 +53,7 @@ 0.8.11 3.6.3 2.5 -3.12.1 +3.13.0 3.2.5 3.3.0 3.5.0
(servicecomb-java-chassis) branch master updated: Bump org.apache.maven.plugins:maven-remote-resources-plugin (#4281)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git The following commit(s) were added to refs/heads/master by this push: new a1169a286 Bump org.apache.maven.plugins:maven-remote-resources-plugin (#4281) a1169a286 is described below commit a1169a2866ba10fdba4bcad9d89e9ea13fa9 Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> AuthorDate: Wed Apr 3 09:23:13 2024 +0800 Bump org.apache.maven.plugins:maven-remote-resources-plugin (#4281) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index ce01aedd6..21677fd2d 100644 --- a/pom.xml +++ b/pom.xml @@ -57,7 +57,7 @@ 3.2.5 3.3.0 3.5.0 - 3.1.0 + 3.2.0 1.7.1 0.6.1 3.19.2
(servicecomb-java-chassis) branch master updated (15167d81a -> 458f7b720)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a change to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git from 15167d81a Bump log4j2.version from 2.23.0 to 2.23.1 (#4285) add 458f7b720 Bump com.google.guava:guava from 33.0.0-jre to 33.1.0-jre (#4284) No new revisions were added by this update. Summary of changes: dependencies/default/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
(servicecomb-java-chassis) branch master updated (b8bf66a22 -> b646f8808)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a change to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git from b8bf66a22 Bump io.micrometer:micrometer-bom from 1.12.2 to 1.12.4 (#4290) add b646f8808 Bump com.alibaba.nacos:nacos-client from 2.3.0 to 2.3.1 (#4286) No new revisions were added by this update. Summary of changes: dependencies/default/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
(servicecomb-java-chassis) branch master updated (458f7b720 -> f3e033128)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a change to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git from 458f7b720 Bump com.google.guava:guava from 33.0.0-jre to 33.1.0-jre (#4284) add f3e033128 Bump io.zipkin.zipkin2:zipkin from 2.26.0 to 3.1.1 (#4283) No new revisions were added by this update. Summary of changes: dependencies/default/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
(servicecomb-java-chassis) branch master updated (b646f8808 -> 15167d81a)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a change to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git from b646f8808 Bump com.alibaba.nacos:nacos-client from 2.3.0 to 2.3.1 (#4286) add 15167d81a Bump log4j2.version from 2.23.0 to 2.23.1 (#4285) No new revisions were added by this update. Summary of changes: dependencies/default/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
(servicecomb-java-chassis) branch master updated: Bump io.micrometer:micrometer-bom from 1.12.2 to 1.12.4 (#4290)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git The following commit(s) were added to refs/heads/master by this push: new b8bf66a22 Bump io.micrometer:micrometer-bom from 1.12.2 to 1.12.4 (#4290) b8bf66a22 is described below commit b8bf66a221034d463a2ed4a00a10ea03ea8fd018 Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> AuthorDate: Wed Apr 3 09:21:31 2024 +0800 Bump io.micrometer:micrometer-bom from 1.12.2 to 1.12.4 (#4290) --- dependencies/default/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dependencies/default/pom.xml b/dependencies/default/pom.xml index 28c6de4b8..35a1af44e 100644 --- a/dependencies/default/pom.xml +++ b/dependencies/default/pom.xml @@ -65,7 +65,7 @@ 1.2.17 2.23.0 3.9.6 -1.12.2 +1.12.4 5.15.0 2.3.0 0.3.0
(servicecomb-java-chassis) branch master updated: [SCB-2863]support zookeeper authentication (#4292)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git The following commit(s) were added to refs/heads/master by this push: new 5ff9fa07b [SCB-2863]support zookeeper authentication (#4292) 5ff9fa07b is described below commit 5ff9fa07b75151a5c9fac1dd98cb18e399153b69 Author: liubao68 AuthorDate: Tue Apr 2 20:37:43 2024 +0800 [SCB-2863]support zookeeper authentication (#4292) --- .../config/zookeeper/ZookeeperClient.java | 48 +++-- .../config/zookeeper/ZookeeperConfig.java | 12 ++ .../registry/zookeeper/ZookeeperDiscovery.java | 48 +++-- .../registry/zookeeper/ZookeeperRegistration.java | 49 -- .../zookeeper/ZookeeperRegistryProperties.java | 20 + 5 files changed, 168 insertions(+), 9 deletions(-) diff --git a/dynamic-config/config-zookeeper/src/main/java/org/apache/servicecomb/config/zookeeper/ZookeeperClient.java b/dynamic-config/config-zookeeper/src/main/java/org/apache/servicecomb/config/zookeeper/ZookeeperClient.java index 56d9ff7b8..32554923e 100644 --- a/dynamic-config/config-zookeeper/src/main/java/org/apache/servicecomb/config/zookeeper/ZookeeperClient.java +++ b/dynamic-config/config-zookeeper/src/main/java/org/apache/servicecomb/config/zookeeper/ZookeeperClient.java @@ -24,6 +24,9 @@ import java.util.HashMap; import java.util.Map; import java.util.Properties; +import javax.security.auth.login.AppConfigurationEntry; +import javax.security.auth.login.Configuration; + import org.apache.commons.lang3.StringUtils; import org.apache.curator.framework.CuratorFramework; import org.apache.curator.framework.CuratorFrameworkFactory; @@ -31,6 +34,7 @@ import org.apache.curator.framework.recipes.cache.CuratorCache; import org.apache.curator.retry.ExponentialBackoffRetry; import org.apache.servicecomb.config.BootStrapProperties; import org.apache.servicecomb.config.zookeeper.ZookeeperDynamicPropertiesSource.UpdateHandler; +import org.apache.zookeeper.server.auth.DigestLoginModule; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.config.YamlPropertiesFactoryBean; @@ -38,6 +42,29 @@ import org.springframework.core.env.Environment; import org.springframework.core.io.ByteArrayResource; public class ZookeeperClient { + static class ZookeeperSASLConfig extends Configuration { +AppConfigurationEntry entry; + +public ZookeeperSASLConfig(String username, +String password) { + Map options = new HashMap<>(); + options.put("username", username); + options.put("password", password); + this.entry = new AppConfigurationEntry( + DigestLoginModule.class.getName(), + AppConfigurationEntry.LoginModuleControlFlag.REQUIRED, + options + ); +} + +@Override +public AppConfigurationEntry[] getAppConfigurationEntry(String name) { + AppConfigurationEntry[] array = new AppConfigurationEntry[1]; + array[0] = entry; + return array; +} + } + private static final Logger LOGGER = LoggerFactory.getLogger(ZookeeperClient.class); public static final String PATH_ENVIRONMENT = "/servicecomb/config/environment/%s"; @@ -70,6 +97,7 @@ public class ZookeeperClient { private Map allLast = new HashMap<>(); + public ZookeeperClient(UpdateHandler updateHandler, Environment environment) { this.updateHandler = updateHandler; this.zookeeperConfig = new ZookeeperConfig(environment); @@ -77,9 +105,23 @@ public class ZookeeperClient { } public void refreshZookeeperConfig() throws Exception { -CuratorFramework client = CuratorFrameworkFactory.newClient(zookeeperConfig.getConnectString(), -zookeeperConfig.getSessionTimeoutMillis(), zookeeperConfig.getConnectionTimeoutMillis(), -new ExponentialBackoffRetry(1000, 3)); +CuratorFrameworkFactory.Builder builder = CuratorFrameworkFactory.builder() +.connectString(zookeeperConfig.getConnectString()) +.sessionTimeoutMs(zookeeperConfig.getSessionTimeoutMillis()) +.retryPolicy(new ExponentialBackoffRetry(1000, 3)); +String authSchema = zookeeperConfig.getAuthSchema(); +if (StringUtils.isNotEmpty(authSchema)) { + if (!"digest".equals(authSchema)) { +throw new IllegalStateException("Not supported schema now. " + authSchema); + } + if (zookeeperConfig.getAuthInfo() == null) { +throw new IllegalStateException("Auth info can not be empty. "); + } + + String[] authInfo = zookeeperConfig.getAuthInfo().split(":"); + Configuration.setConfiguration(new ZookeeperSASLConfig(authInfo[0], authInfo[1])); +} +CuratorFramework client = builder.build(); client.start(); String env = Boo
(servicecomb-java-chassis) branch master updated (3b07b6e2a -> 5444e46cd)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a change to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git from 3b07b6e2a [SCB-2863]support zookeeper registry (#4276) add 5444e46cd [SCB-2863]support zookeeper config (#4291) No new revisions were added by this update. Summary of changes: .../servicecomb/samples/ConsumerController.java| 5 + .../servicecomb/samples/ProviderService.java | 2 + demo/demo-zookeeper/provider/pom.xml | 4 + .../servicecomb/samples/ProviderController.java| 63 +- .../provider/src/main/resources/application.yml| 4 +- demo/demo-zookeeper/test-client/pom.xml| 2 +- .../apache/servicecomb/samples/HelloWorldIT.java | 10 + dependencies/bom/pom.xml | 5 + dependencies/default/pom.xml | 5 + .../{config-nacos => config-zookeeper}/pom.xml | 14 +- .../config/zookeeper/ZookeeperClient.java | 235 + .../config/zookeeper/ZookeeperConfig.java | 41 ++-- .../ZookeeperDynamicPropertiesSource.java} | 16 +- ...ache.servicecomb.config.DynamicPropertiesSource | 2 +- dynamic-config/pom.xml | 1 + .../config/ConfigEnvironmentPostProcessor.java | 17 +- .../servicecomb/registry/lightweight/Self.java | 6 +- .../localregistry/LocalRegistrationInstance.java | 9 +- .../registry/nacos/NacosRegistration.java | 4 +- .../registry/zookeeper/ZookeeperDiscovery.java | 2 +- .../registry/zookeeper/ZookeeperRegistration.java | 6 +- .../zookeeper/ZookeeperRegistryProperties.java | 20 +- 22 files changed, 398 insertions(+), 75 deletions(-) copy dynamic-config/{config-nacos => config-zookeeper}/pom.xml (82%) create mode 100644 dynamic-config/config-zookeeper/src/main/java/org/apache/servicecomb/config/zookeeper/ZookeeperClient.java copy foundations/foundation-config/src/main/java/org/apache/servicecomb/config/priority/DynamicProperty.java => dynamic-config/config-zookeeper/src/main/java/org/apache/servicecomb/config/zookeeper/ZookeeperConfig.java (52%) copy dynamic-config/{config-nacos/src/main/java/org/apache/servicecomb/config/nacos/NacosDynamicPropertiesSource.java => config-zookeeper/src/main/java/org/apache/servicecomb/config/zookeeper/ZookeeperDynamicPropertiesSource.java} (79%) copy dynamic-config/{config-apollo => config-zookeeper}/src/main/resources/META-INF/services/org.apache.servicecomb.config.DynamicPropertiesSource (91%)
(servicecomb-java-chassis) branch master updated: [SCB-2863]support zookeeper registry (#4276)
This is an automated email from the ASF dual-hosted git repository. liubao pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git The following commit(s) were added to refs/heads/master by this push: new 3b07b6e2a [SCB-2863]support zookeeper registry (#4276) 3b07b6e2a is described below commit 3b07b6e2afe86be03531695b6071f67bf763437e Author: liubao68 AuthorDate: Mon Apr 1 14:15:13 2024 +0800 [SCB-2863]support zookeeper registry (#4276) --- demo/demo-zookeeper/consumer/pom.xml | 82 .../servicecomb/samples/ConsumerApplication.java | 33 .../servicecomb/samples/ConsumerController.java| 37 .../servicecomb/samples/ProviderService.java | 22 +++ .../consumer/src/main/resources/application.yml| 34 .../consumer/src/main/resources/log4j2.xml | 41 demo/demo-zookeeper/gateway/pom.xml| 85 + .../servicecomb/samples/GatewayApplication.java| 33 .../gateway/src/main/resources/application.yml | 44 + .../gateway/src/main/resources/log4j2.xml | 41 {service-registry => demo/demo-zookeeper}/pom.xml | 43 +++-- demo/demo-zookeeper/provider/pom.xml | 86 + .../servicecomb/samples/ProviderApplication.java | 33 .../servicecomb/samples/ProviderController.java| 33 .../provider/src/main/resources/application.yml| 33 .../provider/src/main/resources/log4j2.xml | 41 demo/demo-zookeeper/test-client/pom.xml| 209 + .../org/apache/servicecomb/samples/Config.java | 22 +++ .../apache/servicecomb/samples/HelloWorldIT.java | 40 .../servicecomb/samples/TestClientApplication.java | 49 + .../test-client/src/main/resources/application.yml | 25 +++ .../test-client/src/main/resources/log4j2.xml | 41 .../apache/servicecomb/samples/ZookeeperIT.java| 43 + demo/pom.xml | 1 + dependencies/bom/pom.xml | 5 + dependencies/default/pom.xml | 12 ++ service-registry/pom.xml | 1 + service-registry/{ => registry-zookeeper}/pom.xml | 43 +++-- .../registry/zookeeper/ZookeeperConfiguration.java | 40 .../registry/zookeeper/ZookeeperConst.java | 29 +++ .../registry/zookeeper/ZookeeperDiscovery.java | 165 .../zookeeper/ZookeeperDiscoveryInstance.java | 36 .../registry/zookeeper/ZookeeperInstance.java | 190 +++ .../registry/zookeeper/ZookeeperRegistration.java | 169 + .../zookeeper/ZookeeperRegistrationInstance.java | 36 .../zookeeper/ZookeeperRegistryProperties.java | 79 ...rk.boot.autoconfigure.AutoConfiguration.imports | 18 ++ 37 files changed, 1947 insertions(+), 27 deletions(-) diff --git a/demo/demo-zookeeper/consumer/pom.xml b/demo/demo-zookeeper/consumer/pom.xml new file mode 100644 index 0..23a62be5f --- /dev/null +++ b/demo/demo-zookeeper/consumer/pom.xml @@ -0,0 +1,82 @@ + + +http://maven.apache.org/POM/4.0.0; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance; + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd;> + 4.0.0 + + +org.apache.servicecomb.demo +demo-zookeeper +3.1.0-SNAPSHOT + + + zookeeper-consumer + Java Chassis::Demo::Zookeeper::CONSUMER + jar + + + + org.apache.servicecomb + java-chassis-spring-boot-starter-standalone + + + org.apache.servicecomb + registry-zookeeper + + + + + + +org.springframework.boot +spring-boot-maven-plugin + + + + + + + docker + + + +io.fabric8 +docker-maven-plugin + + +org.commonjava.maven.plugins +directory-maven-plugin + + +com.github.odavid.maven.plugins +mixin-maven-plugin + + + + org.apache.servicecomb.demo + docker-build-config + ${project.version} + + + + + + + + + \ No newline at end of file diff --git a/demo/demo-zookeeper/consumer/src/main/java/org/apache/servicecomb/samples/ConsumerApplication.java b/demo/demo-zookeeper/consumer/src/main/java/org/apache/servicecomb/samples/ConsumerApplication.java new file mode 100644 index 0..3e7a2a0e2 --- /dev/null +++ b/demo/demo-zookeeper/consumer/src/main/java/org/apache/servicecomb/samples/ConsumerApplication.java @@ -0,0 +1,33 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed