1 Star 36 Fork 20

Java程序员廖志伟/java_wxid

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
Apache-2.0

java_wxid

License version EN doc CN doc Page Views Count

介绍

前期主要以demo项目为主,快速集成各种微服务相关的技术,帮助大家可以快速集成到自己的项目中,节约开发时间。

后期则会以企业实战项目为主,致力于解决高并发、高可用、高性能、高可靠、海量数据等疑难问题,同时记录工作中遇到的技术难点、有技术亮点,项目会结合博客、视频辅助讲解,帮助大家查询遇到同类型的问题。

项目架构

  1. 使用Spring Boot快速构建应用
  2. 使用Spring Cloud分布式微服务架构作为一站式解决方案
  3. 使用Spring Cloud Open Feign基于动态代理动态构造请求实现与其他系统进行交互
  4. 使用Spring Cloud Hystrix实现服务容错、熔断、降级、监控
  5. 使用Spring Cloud Ribbon以库的方式集成到服务的消费方实现客户端负载均衡
  6. 使用Spring Cloud Gateway作为API网关服务进行请求拦截、服务分发、降级、限流
  7. 使用Spring Cloud Security Oauth2作为微服务统一认证中心实现用户认证和授权访问
  8. 使用Spring Cloud Stream作为消息驱动用于动态的切换中间件
  9. 使用Spring Cloud Skywalking基于字节码注入通过探针方式进行链路追踪、分布式追踪、性能指标分析、应用和服务依赖分析
  10. 使用Spring Cloud Alibaba Nacos实现服务注册/发现/续约/剔除/下线、心跳检测、服务配置管理、基于长轮训机制实现配置动态变更
  11. 使用Spring Cloud Alibaba Seata作为对项目代码无入侵的分布式事务解决方案
  12. 使用Spring Cloud Alibaba Sentinel实现高可用流量防护
  13. 使用Apache ShardingSphere作为关系型数据库中间件实现分库分表、读写分离
  14. 使用Apache Mybatis作为持久层框架用于定制化SQL、存储过程以及高级映射
  15. 使用Redis作为高性能分布式缓存数据库
  16. 使用ElasticSearch全文搜索
  17. 使用MongoDB非关系型数据库
  18. 使用xxl-job作为分布式任务调度平台
  19. 使用Elasticsearch + Logstash + Kibana作为日志收集系统
  20. 使用Apifox作为API文档、API调试、API Mock、API自动化测试
  21. 使用Apache Spark作为基于内存计算的大数据分析引擎用于批处理、交互式查询
  22. 通过ETL工具将数据源抽取到HDFS作为高可靠、高吞吐量的分布式文件系统存储,通过Hive清洗、处理和计算原始数据,Hive清洗处理后的结果,将存入Hbase,海量数据随机查询场景从HBase查询数据
  23. 基于领域驱动DDD进行架构设计
  24. 使用Netty基于Java NIO封装的高性能的网络通信框架
  25. 使用k8s、docker、docker-compose、宝塔面板进行环境搭建和部署
  26. 分享人才筛选、工作分配、高效办公、项目推动等团队管理经验
  27. 使用Vue渐进式JavaScript框架作为适用场景丰富的Web前端框架
  28. 使用Swagger作为在线接口文档
  29. 使用设计模式进行架构设计与功能开发
  • 【支付场景】【策略模式 + 工厂模式 + 门面模式 + 单例模式】
  • 【业务投放场景】【责任链模式】
  • 【平台积分红包投放场景】【责任链模式】
  • 【订单状态流转场景】【状态模式 + 享元模式 + 模板方法模式】
  • 【开具增值税发票场景】【建造者模式 + 原型模式】

系统模块

前期规划,实现部分

java_wxid   
├── demo                                                            // 演示模块
│     └── 模块名称:apache-mybatis-demo模块                            //Apache Mybatis集成(已实现并有博文总结)
│     └── 模块名称:apache-shardingsphere-demo模块                     //Apache ShardingSphere集成(已实现并有博文总结)
│     └── 模块名称:design-demo模块                                    //设计模式实战落地(已实现并有博文总结)
│     └── 模块名称:elasticsearch-demo模块                             //ElasticSearch集成(已实现并有博文总结)
│     └── 模块名称:mongodb-demo模块                                   //MongoDB集成(已实现并有博文总结)
│     └── 模块名称:redis-demo模块                                     //Redis集成(已实现并有博文总结)
│     └── 模块名称:red-packet-rain模块                                //红包雨示例(已实现并有博文总结)
│     └── 模块名称:spring-boot-demo模块                               //Spring Boot快速构建应用(已实现并有博文总结)
│     └── 模块名称:spring-cloud-alibaba-nacos-demo模块                //Spring Cloud Alibaba Nacos集成(已实现并有博文总结)
│     └── 模块名称:spring-cloud-alibaba-seata-demo模块                //Spring Cloud Alibaba Seata集成(已实现并有博文总结)
│     └── 模块名称:spring-cloud-alibaba-sentinel-demo模块             //Spring Cloud Alibaba Sentinel集成(框架已搭建,待校验,待博文总结)
│     └── 模块名称:spring-cloud-gateway-demo模块                      //Spring Cloud Gateway集成(已实现并有博文总结)
│     └── 模块名称:spring-cloud-hystrix-demo模块                      //Spring Cloud Hystrix集成(已实现并有博文总结)
│     └── 模块名称:spring-cloud-open-feign-demo模块                   //Spring Cloud Open Feign集成(已实现并有博文总结)
│     └── 模块名称:spring-cloud-ribbon-demo模块                       //Spring Cloud Ribbon集成(已实现并有博文总结)
│     └── 模块名称:spring-cloud-security-oauth2-demo模块              //Spring Cloud Security Oauth2集成(已实现并有博文总结)
│     └── 模块名称:spring-cloud-security-oauth2-sso-client-demo模块   //Spring Cloud Security Oauth2集成(已实现并有博文总结)
│     └── 模块名称:spring-cloud-skywalking-demo模块                   //Spring Cloud Skywalking集成(已实现并有博文总结)
│     └── 模块名称:spring-cloud-stream-demo模块                       //Spring Cloud Stream集成(已实现并有博文总结)
│     └── 模块名称:swagger-demo模块                                   //springfox-swagger2集成(已实现并有博文总结)
│     └── 模块名称:xxl-job模块                                        //xxl-job集成(已实现并有博文总结)
│     └── 模块名称:apache-spark-demo模块                              //Apache Spark集成
│     └── 模块名称:etl-hdfs-hive-hbase-demo模块                       //ETL、HDFS、Hive、Hbase集成
│     └── 模块名称:ddd-mode-demo模块                                  //DDD领域设计
│     └── 模块名称:netty-demo模块                                     //Netty集成
│     └── 模块名称:vue-demo模块                                       //前端vue集成
├── document                                                        // 文档
│     └── JavaKnowledgeDocument                                     //java知识点
│           └── java基础知识点.md                     
│           └── mq知识点.md
│           └── mysql知识点.md
│           └── redis知识点.md
│           └── springcould知识点.md
│           └── spring知识点.md
│           └── 项目经验.md
│     └── FounderDocument                                           
│           └── 创始人.md
│     └── 经验分享                                           
│           └── 公司、入职、试用期、职业规划、技术实力.md
│           └── 岗位要求.md
│           └── 熟悉项目流程.md
│           └── 面试招聘.md

快速集成教程(目前以博客文章为主,后期会录制视频讲解)

  1. Spring Boot快速构建应用详见:https://liaozhiwei.blog.csdn.net/article/details/126455692
  2. Spring Cloud Open Feign集成详见:https://liaozhiwei.blog.csdn.net/article/details/126475438
  3. Spring Cloud Hystrix集成详见:https://blog.csdn.net/java_wxid/article/details/126487239
  4. Spring Cloud Gateway集成详见:https://liaozhiwei.blog.csdn.net/article/details/126489878
  5. Spring Cloud Ribbon集成详见:https://blog.csdn.net/java_wxid/article/details/126485167
  6. Spring Cloud Security Oauth2集成详见:https://blog.csdn.net/java_wxid/article/details/126514228
  7. Spring Cloud Stream集成详见:https://blog.csdn.net/java_wxid/article/details/127145677
  8. Spring Cloud Skywalking集成详见:https://liaozhiwei.blog.csdn.net/article/details/127153372
  9. Spring Cloud Alibaba Nacos集成详见:https://blog.csdn.net/java_wxid/article/details/126463469
  10. Spring Cloud Alibaba Seata集成详见:https://liaozhiwei.blog.csdn.net/article/details/126592324
  11. Spring Cloud Alibaba Sentinel集成详见:https://blog.csdn.net/java_wxid/
  12. Apache ShardingSphere集成详见:https://liaozhiwei.blog.csdn.net/article/details/126682757
  13. Apache Mybatis集成详见:https://liaozhiwei.blog.csdn.net/article/details/126809640
  14. Redis集成详见:https://liaozhiwei.blog.csdn.net/article/details/126815387
  15. ElasticSearch集成详见:https://blog.csdn.net/java_wxid/article/details/127134531
  16. MongoDB集成详见:https://liaozhiwei.blog.csdn.net/article/details/126823247
  17. xxl-job集成详见:https://gitee.com/java_wxid/java_wxid/tree/master/demo/xxl-job
  18. Elasticsearch + Logstash + Kibana集成详见:https://blog.csdn.net/java_wxid/
  19. Apifox集成详见:https://www.apifox.cn/help
  20. Vue集成详见:https://cn.vuejs.org/guide/quick-start.html
  21. Swagger集成详见:https://liaozhiwei.blog.csdn.net/article/details/127022590
  22. 设计模式实战落地详见:https://blog.csdn.net/java_wxid/category_12027815.html
  23. 红包雨实战落地详见:https://blog.csdn.net/java_wxid/category_12027815.html

使用说明

  1. 搭建环境并且修改各种模块的配置
  • Nacos
  • Seata
  • Sentinel
  • MySQL
  • MongoDB
  • Elasticsearch + Logstash + Kibana
  • Redis
  • Skywalking
  1. 本地部署
  • 通过git下载源码
  • 修改业务模块的application.yml,更新MySQL、MongoDB、Redis、ElasticSearch、Nacos、Seata、Sentinel、Skywalking的配置
  • Eclipse、IDEA运行各个模块的Application.java,则可启动项目
  • 配置maven路径,本地maven仓库,下载对应的依赖
  • 项目访问路径:http://localhost:模块配置的端口

演示效果

哔哩哔哩红包雨压测实录(阿里云部署和压测):https://www.bilibili.com/video/BV158411k7M2/?spm_id_from=333.999.0.0

其他模块后续录制,敬请期待。

专业方向🍊:

拥有多年一线研发经验,参与并主导过多个互联网产品研发和系统架构搭建,研究方向:主流框架的底层源码(Spring、SpringBoot、SpringMVC、SpringCould、Mybatis、Dubbo、Zookeeper),消息中间件底层架构原理(RabbitMQ、RockerMQ、Kafka)、Redis缓存、MySQL关系型数据库、ElasticSearch全文搜索、MongoDB非关系型数据库、分库分表ShardingSphere、设计模式、领域驱动DDD、Kubernetes容器编排。对于产品、公司、行业、市场有着比较深入的研究。

独立出版图书📝

清华大学出版社:2024年陆续出版

《Java项目实战—深入理解大型互联网企业通用技术》基础篇、进阶篇、架构篇

《解密程序员的思维密码--沟通、演讲、思考的实践》

自媒体🌟

CSDN主页访问链接:

https://blog.csdn.net/java_wxid

知乎主页访问链接:

https://www.zhihu.com/people/java_wxid

凯迪网主页访问链接:

https://www.9kd.com/view/20040172

哔哩哔哩主页访问链接:

https://space.bilibili.com/353586723

个人微信号:SeniorRD

添加个人微信号请备注来源:如CSDN、哔哩哔哩、知乎等。

Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] Licensed 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.

简介

java_wxid项目以我的博客ID命名,主要是记录工作中遇到的技术难点、有技术亮点,项目会结合博客、视频辅助讲解,帮助大家查询是否遇到过同类型的问题。 展开 收起
README
Apache-2.0
取消

发行版 (3)

全部
2年前

贡献者 (6)

全部

近期动态

Pushed new commit to master branch over 1 year ago, 373980c...d355f3d
Pushed new commit to master branch over 1 year ago, c3ff70d...373980c
Pushed new commit to master branch over 1 year ago, 3ed98c0...c3ff70d
Pushed a new 红包雨 tag over 1 year ago
Pushed new commit to master branch over 1 year ago, dd27253...3ed98c0
加载更多
不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Java
1
https://gitee.com/java_wxid/java_wxid.git
git@gitee.com:java_wxid/java_wxid.git
java_wxid
java_wxid
java_wxid
master

搜索帮助