团队研发+一般分布式引用+即时通信项目环境部署猜想

前言

开发及服务器环境通用

jdk1.8

ubuntu下面配置oraclejdk
linux配置jdk-转载
maven
ubuntu下配置maven环境
gradle
gradle4的安装在某些系统中有问题,下面是一个排坑的过程:该文章忽略不要,请参考下面的:
cents7配置gradle4

ubuntu下面配置gradle

注意,提示一下gradle下面的第三方库的冲突解决是必须要会的,请看
由springboot项目启动失败,引出的如何在gradle下面排查解决第三方库依赖问题

groovy
linux下面配置groovy

nginx

ubuntu下编译nginx平滑添加stream模块以及fastdfs访问模块
nginx+ca+https设置

数据存储

redis
请参考:阶段巨献 - centos+php-fpm+mariaDB+svn+nodejs+redis(开机启动及配置远程连接),配置linux的php和nodejs网站运行环境。

ubuntu下安装配置redis-server以及配置redisdesktopmanager
postgresql

数据库就用这个。。额,不用mysql的原因是不熟mysql,没别的意思,别误会了。

请参考:
ubuntu下安装配置postgresql数据库
【centos】配置postgresql数据库。
注意,建议顺便安装pgadmin4作为数据库监控工具–额,当然,pgadmin4已经改成了python网站,部署起来有一定麻烦的,可以参考【数据库管理工具查询工具就不要用pgadmin4了,麻烦】:
ubuntu下面配置pgadmin4为系统服务且开机自动启动

greenplum
暂略。
ps:一旦系统上规模以后,数据多了以后必然要用到数据仓库,这个就是很多人用的基于postgresql数据库的数据仓库。

web容器

tomcat

暂且忽略安装配置过程,请自行查阅资料

rocketmq
rocketMQ+centos+安装配置

文件存储服务器
fastdfs,请参考

单机开发环境下:
ubntu下单机配置fastdfs作为开发环境(1)—fastdfs的安装、配置及测试

ubntu下单机配置fastdfs作为开发环境(2)—nginx生产环境下再编译+fastdfs扩展模块的编译

ubntu下单机配置fastdfs作为开发环境(3)— nginx如何启用fastdfs扩展以及相关配置

ubntu下单机配置fastdfs作为开发环境(4)—将 fastdfs客户端整合到现有java项目中

集群模式下:

待完善

分布式相关

项目配置中心

可以先参考许雪里大神的博客文章
《分布式配置管理平台XXL-CONF》

在本地搭建xxl-conf项目,可以参考:
【配置中心】xxl-conf配置1 - 入门教程
【配置中心】xxl-conf配置2 - spring boot+gradle打包为可执行的war
【配置中心】xxl-conf配置3 - xxl-conf-admin在linux下面的自启动

【配置中心】xxl-conf配置4 - spring mvc客户端读取xxl-conf的配置信息

zookeeper配置

单机开发模式配置:

【rpc配置】zookeeper在linux下的单机配置+systemd服务化+自启动

集群模式配置:

待完善

rpc接口调用

已经选定xxl-rpc具体可以先参考

许雪里大神的文章
《分布式服务框架XXL-RPC》

任务调度

选定xxl-job请先参考:

《分布式任务调度平台XXL-JOB》

内部文件上传管理+短信发送等基础系统

研发中,待完善

第三方开源项目

tigase
tigase是一个xmpp即使通信协议的开源实现,作者也曾经捣鼓过它的源代码,也部署过,例如以下文章:

tigase搭建开发环境
tigase相关参考资料–linux+tigase+postgresql 二次开发环境搭建【草稿】
xmpp即时通信开发—1、tigase源代码的编译—idea+postgresql+gradle
tigase客户端之smack4.3用法【草稿】

jitsi

开发环境必备

代码管理

svn
请参考:阶段巨献 - centos+php-fpm+mariaDB+svn+nodejs+redis(开机启动及配置远程连接),配置linux的php和nodejs网站运行环境。

内部maven仓库

nexus
ps:nexus是maven的仓库,gradle一样可以使用。可以参考:微服务架构【技术点2】— centos+nexus搭建maven私服+idea联合发布使用

开发自动编译及部署

jenkins
DEVOPS的概念里面,自动化部署是其中一个卖点,实际上,jenkins一直广受欢迎。如何搭建jenkins自动编译发布系统?
请参考:
[CI、CD入门]centos下安装配置jenkins

下面几篇文章是专门说明jenkins的部署脚本编写的:
[CI、CD入门]基础参考资料
[CI、CD入门]jenkins+maven+svn+自动构建
[CI、CD入门]maven打包可执行程序之微服务-服务提供者篇
jenkins-1、创建pipeline及相关脚本编写
jenkins-2、pipeline脚本切换角色,执行脚本等要点

Host key verification failed -解决jenkins账户无法切换+jenkins免密登录+ssh免密登录+scp免密远程复制的问题

[Gradle]使用远程maven仓库时候出现 unindexed 异常+idea无法识别gradle的导入+打包jar到nexus+构建全局设定优化+copy文件乱码+

jenkins+gradle自动构建脚本demo

常用开发工具监控工具

datagrip
数据库管理工具,类似navicat,比navicat好的地方在于,支持所有数据库且在linux在ubuntu下面可以用。

redis-destop-manager
redis的桌面可视化管理工具。
支持windows以及linux
ubuntu下安装配置redis-server以及配置redisdesktopmanager

spring boot 坑爹

spring boot 的找不到 httpServletMapping方法的bug

资源及内部文件

centos下面配置ftp

综合应用

文件服务器应用程序

该程序用于对外提供文件服务,文件检索,文件去重以及删除,移除等功能
其中需要,fastdfs、xxl-conf、dubbo、zookeeper以及redis缓存服务器、postgresql数据库等综合起来使用。

详情可以参考:

spring+xxl-conf+redis+postgresql+sofa-rpc+fastDFS基本开发框架整合
这篇文章上面的都是整合框架以及开发相关技巧。

结语

一个普通的分布式系统后台,竟然要用到这么多东西,估计也是够呛了。

你可能感兴趣的:(即时通信,软件工程,设计架构,研发模式及运维,软件工程架构实践)