首页 文章 精选 留言 我的

精选列表

搜索[Vite构建],共10000篇文章
优秀的个人博客,低调大师

新华三助力公安构建新IT“警盾”

8月24日,在中国公安部指导下,人民公安报社携手公安部科信局领导、各省市公安系统科信部相关领导、云计算及大数据行业专家、产业链合作伙伴等,在浙江海宁召开了2017公安行业云计算与大数据研讨会,共同探讨云计算、大数据技术与公安业务的结合与应用,交流具有代表性、典型性的经验和做法,推进大数据时代公安科技信息化工作。 本次研讨会将国各地的公安行业科信部负责人与国内优秀IT厂商聚集在一起,重点探讨了公安行业安全云面对的主要问题及解决方案,以及如何借力大数据和“互联网+”,通过基础信息化推进警务实战化。 新华三作为全球新IT解决方案领导者受邀参加本次研讨会,并在会上分析了目前我国公安大数据平台中存在的一些问题,解读了这些问题的解决方案。 在新华三看来,目前我国的公安大数据平台技术架构可以考虑进一步向多元化发展,针对业务需求不断提升性能以及架构的可扩展性,这些将有利于进行开源管理和维护。在现有平台的基础上,可以考虑引入更多新的技术和业务模型,从而挖掘数据价值并简化应用方面的开发过程。 针对这些问题,新华三提供了一整套公安大数据平台的技术架构,通过融合现有的技术架构,实现大数据平台的自动化统一管理维护,集成丰富的分析工具,方便了后期的应用开发。 据新华三庞松介绍,目前新华三自主研发的公安行业大数据平台,已经在西藏公安等地方落地运营,均取得了非常卓越的效果,为全国其他公安行业提供了可借鉴优秀模板。 未来的新华三,将继续利用自身在云计算及大数据行业的领先技术,为全国的公安行业用户提供切实可行的解决方案,进一步推动我国公安行业的信息化建设,为整个社会治安建设贡献自己的力量。 本文出处:畅享网 本文来自云栖社区合作伙伴畅享网,了解相关信息可以关注vsharing.com网站。

优秀的个人博客,低调大师

基于TableStore构建简易海量Topic消息队列

前言 消息队列,通常有两种场景,一种是发布者订阅模式,一种是生产者消费者模式。发布者订阅模式,即发布者生产消息放入队列,多个监听的消费者都会收到同一份消息,也就是每个消费者收到的消息是一样的。生产者消费者模式,生产者生产消息放入队列,多个消费者同时监听队列,谁先抢到消息就会从队列中取走消息,最终每个消息只会有一个消费者拥有。 在大数据时代,传统的生产者消费者队列模式中的Topic数目可能从少量的几个变为海量topic。例如要实现一个全网爬虫抓取任务调度系统,每个大型的门户,SNS都会成为一个topic。在topic内部也会有海量的子网页需要抓取。在实现这样的一个任务分发调度系统时可能会遇到以下一些问题: 海量的topic,意味着我们可能会有海量的队列。针对爬虫场景,根据网页类型,一类网站对应到一个任务队列,不同的任务队列会有自己的生产者

优秀的个人博客,低调大师

使用docker构建云服务器项目

1.在CentOS7上安装 在线安装命令: yum –y install docker 启动 systemctl startdocker 导入镜像: docker load <centos7_tomcat7.tar 说明:<后面的centos7_tomcat7.tar要写centos7_tomcat7.tar所在的路径。 查看本地镜像库 docker images 2.创建br0网桥 说明:创建br0网桥目的是为docker容器设置固定IP。 执行命令: ip addr add192.168.152.193/24 dev br0; ip addr del192.168.152.193/24 dev eno16777736; brctl addif br0eno16777736; ip route add defaultvia 192.168.152.2 dev br0 说明:192.168.152.193/24为网卡eno16777736的IP地址,192.168.152.2为网关,根据自己机器的实际情况替换即可。 下载pipework脚本 下载地址https://github.com/jpetazzo/pipework,放到/usr/local/bin/目录下即可。 3.搭建Glusterfs分布式文件系统 说明:为docker容器提供硬盘挂载功能。 环境:S1、S2为服务器,C1为客户端(这里是Docker服务器)。S1(192.168.152.200)、S2(192.168.152.201)、C1(192.168.152.193) 3.1.服务端安装配置 安装epel-release yum -y installepel-release 在S1上下载repo: wget –P /etc/yum.repos.dhttp:// http://download.gluster.org/pub/gluster/glusterfs/LATEST/EPEL.repo/glusterfs-epel.repo yum命令在线安装 yum -y installglusterfs-server 编辑防火墙开启端口 vi /etc/sysconfig/iptables 添加内容: -A INPUT -p tcp -m state --state NEW -m tcp --dport 24007 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 49155 -j ACCEPT 保存并退出 启动服务: systemctl startglusterd S2服务器重复1至4步骤 在S1上绑定S2服务器: gluster peer probe 192.168.152.201 创建一个复制卷,保存2份数据,每台服务器保存一份: gluster volume create gfs 192.168.152.200:/gfs 192.168.152.201:/gfs 启动卷: gluster volumestart gfs 3.2.客户端安装配置 在C1安装 yum –y installglusterfs-client 创建要使用的文件目录 mkdir /gfs 挂载服务端卷到客户端 mount –tglusterfs 192.168.152.200:/gfs /gfs 4.运行RentServer项目 运行RentServer项目即可完成创建服务器,发布项目功能。 本文转自 yntmdr 51CTO博客,原文链接:http://blog.51cto.com/yntmdr/1713045,如需转载请自行联系原作者

优秀的个人博客,低调大师

构建基于LAMP架构的论坛和博客

[root@server27 ~]# yum install httpd [root@server27 ~]# yum install mod_php [root@server27 ~]# yum install mysql mysql-server //**监听3306端口 [root@server27 ~]# yum install php-mysql //** php和mysql的连接器,支持php访问mysql 重启httpd服务 在index.php页面内写一个测试脚本测试一下,看php能否访问mysql: <h1>this is a.com</h1> <?php $link=mysql_connect('127.0.0.1','root',''); if ($link) echo "Success..."; else echo "Failure..."; ?> phpadmin //**基于Web界面管理mysql的工具 安装php常用一些的组件: [root@station39 ~]# yum install php-mbstring php-xml php-gd php-pear php-devel 或者 yum install php* [root@station39 ~]# service httpd restart 安装phpadmin, phpMyAdmin-2.11.11.1-all-languages.tar.bz2,安装包已经准备好了。 [root@station39 www]# mkdir phpmyadmin [root@station39 www]#tar xvf phpMyAdmin-2.11.11.1-all-languages.tar.bz2 [root@station39 ~]# cd phpMyAdmin-2.11.11.1-all-languages [root@station39 phpMyAdmin-2.11.11.1-all-languages]# mv * /var/www/phpmyadmin/ [root@station39 www]# vim /etc/httpd/conf/httpd.con 修改httpd.conf 文件,给/var/www/phpadmin 做一路径别名: <VirtualHost 192.168.0.39:80> DocumentRoot "/var/www/a" ServerName www.a.com Alias /phpadmin "/var/www/phpadmin" </VirtualHost> 重启服务,已经可以通过页面来访问mysql了。 [root@station39 ~]# mysqladmin -uroot -p password '123456' //*为mysql设置用户名密码 此时再刷新页面,已经禁止你直接访问mysql了。 这里我们需要修改phpmyadmin 的配置文件来支持使用用户名密码来访问mysql [root@station39 phpmyadmin]# cp config.sample.inc.php config.inc.php [root@station39 phpmyadmin]# vim config.inc.php $cfg['blowfish_secret'] = 'redhat'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */ line 17 看,已经可以使用用户名密码来登录了: 问题: 缺少php-mcrypt模块,需要安装。 搜索rpm包:www.rpmfind.net 所需要的两个包已经准备好了,使用rpm安装即可。 libmcrypt-2.5.7-5.el5.i386.rpm php-mcrypt-5.1.6-5.el5.i386.rpm [root@station39 ~]# rpm -ivh libmcrypt-2.5.7-5.el5.i386.rpm [root@station39 ~]# rpm -ivh php-mcrypt-5.1.6-5.el5.i386.rpm 或者使用yum本地安装 [root@station39 ~]# yum --nogpgcheck localhost install libmcrypt-2.5.7-5.el5.i386.rpm php-mcrypt-5.1.6-5.el5.i386.rpm -y //** 能够自动解决依赖关系 再登录就可以了。 上面我们是通过做别名的方式来访问phpmyadmin的,下面我们来添加一个虚拟主机,通过主机名来访问phpmyadmin。 <VirtualHost 192.168.0.39:80> DocumentRoot "/var/www/phpmyadmin" ServerName pma.a.com ErrorLog /var/log/httpd/pma.a.com-err CustomLog /var/log/httpd/pma.a.com-access combined <Directory "/var/www/phpmyadmin"> Options Indexes AllowOverride None Order allow,deny allow from all </Directory> </VirtualHost> 重启服务,已经可以通过主机名pma.a.com 来访问mysql了。 PS:如果在物理机上访问,需要在C:\WINDOWS\system32\drivers\etc下的host文件中添加主机名和IP地址映射,不然系统无法通过主机名访问到你的Web页面。 OK, LAMP环境已经搭建完成,下面我们就可以来安装论坛和博客系统了。 开源界比较著名的PHP格式的论坛:phpwind(阿里巴巴收购) discuz(QQ收购) 国外比较著名的论坛:phpbb 博客系统:Wordpress xoops 框架 先安装phpwind: 建虚拟主机: <VirtualHost 192.168.0.39:80> DocumentRoot "/var/www/phpwind" ServerName pw.a.com ErrorLog /var/log/httpd/pw.a.com-err CustomLog /var/log/httpd/pw.a.com-access combined <Directory "/var/www/phpwind"> Options None AllowOverride None Order allow,deny allow from all </Directory> </VirtualHost> 保存退出。 [root@station39 ~]# cd /var/www phpwind_GBK_8.3.zip 已经准备好了,下面就开始解压缩安装了。 [root@station39 www]# unzip phpwind_GBK_8.3.zip [root@station39 www]# mv phpwind_GBK_8.3 phpwind [root@station39 phpwind]# rm -rf docs/ [root@station39 phpwind]# mv upload/* ./ 重启httpd服务,这时候就可以通过web访问到phpwind了,但此时你会发现页面出现乱码,把浏览器的字符编码设置为gb312就可以了。 PS:或者修改httpd的主配置文件,将741行 AddDefaultCharset UTF-8注释掉就可以了。 [root@station39 phpwind]# chmod 777 attachment/ -R [root@station39 phpwind]# chmod 777 html/ data/ -R 删除install.php 文件: [root@station39 phpwind]# mv install.php install.php.bak 再访问下,OK!已经可以了,这时候你就可以登录后台进行管理了。 下面我们来安装wordpress。 压缩包已经准备好了,/var/www/目录下: wordpress-3.0.4-zh_CN.zip 在httpd主配置文件里建虚拟主机: <VirtualHost 192.168.0.39:80> DocumentRoot "/var/www/wordpress" ServerName wp.a.com ErrorLog /var/log/httpd/wp.a.com-err CustomLog /var/log/httpd/wp.a.com-access combined <Directory "/var/www/wordpress"> Options None AllowOverride None Order allow,deny allow from all </Directory> </VirtualHost> 保存退出。 [root@station39 www]# unzip wordpress-3.0.4-zh_CN.zip 重启httpd服务就可以了。 给当前目录写权限 [root@station39 wordpress]# chmod a+x . 此时会自动在worpress目录下创建wp-config.php 文件。 安装完毕,这就是个人管理的界面: OK!此时就可以对你的博客进行个性化设置了。 本文转自 490999122 51CTO博客,原文链接:http://blog.51cto.com/lyp0909/514919,如需转载请自行联系原作者

优秀的个人博客,低调大师

构建MySQL+DRBD+Keepalived高性能架构

前言*DRBD(DistributedReplicatedBlockDevice)是一个基于块设备级别在远程服务器直接同步和镜像数据的开源软件,类似于RAID1数据镜像,通常配合keepalived、heartbeat等HA软件来实现高可用性。这里简单记录仅供参考。 一、实施环境 1 2 3 4 5 系统版本:CentOS 5.8 DRBD版本:drbd- 8.3 . 15 Keepalived:keepalived- 1.1 . 15 Master: 192.168 . 149.128 Backup: 192.168 . 149.129 二、初始化配置 1) 在128、129两台服务器/etc/hosts里面都添加如下配置: 1 2 192.168 . 149.128 node1 192.168 . 149.129 node2 2) 优化系统kernel参数,直接上sysctl.conf配置如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 net.ipv4.ip_forward= 0 net.ipv4.conf. default .rp_filter= 1 net.ipv4.conf. default .accept_source_route= 0 kernel.sysrq= 0 kernel.core_uses_pid= 1 net.ipv4.tcp_syncookies= 1 kernel.msgmnb= 65536 kernel.msgmax= 65536 kernel.shmmax= 68719476736 kernel.shmall= 4294967296 net.ipv4.tcp_max_tw_buckets= 10000 net.ipv4.tcp_sack= 1 net.ipv4.tcp_window_scaling= 1 net.ipv4.tcp_rmem= 4096 87380 4194304 net.ipv4.tcp_wmem= 4096 16384 4194304 net.core.wmem_default= 8388608 net.core.rmem_default= 8388608 net.core.rmem_max= 16777216 net.core.wmem_max= 16777216 net.core.netdev_max_backlog= 262144 net.core.somaxconn= 262144 net.ipv4.tcp_max_orphans= 3276800 net.ipv4.tcp_max_syn_backlog= 262144 net.ipv4.tcp_timestamps= 0 net.ipv4.tcp_synack_retries= 1 net.ipv4.tcp_syn_retries= 1 net.ipv4.tcp_tw_recycle= 1 net.ipv4.tcp_tw_reuse= 1 net.ipv4.tcp_mem= 94500000 915000000 927000000 net.ipv4.tcp_fin_timeout= 1 net.ipv4.tcp_keepalive_time= 30 net.ipv4.ip_local_port_range= 1024 65530 net.ipv4.icmp_echo_ignore_all= 1 3) 两台服务器分别添加一块设备,用于DRBD主设备存储,我这里为/dev/sdb 30G硬盘; 执行如下命令: 1 mkfs.ext3/dev/sdb;dd if =/dev/zeroof=/dev/sdbbs=1Mcount= 1 ;sync 三、DRBD安装配置 1 yum-yinstalldrbd83*kmod-drbd83;modprobedrbd 安装完成并加载drbd模块后,vi修改/etc/drbd.conf配置文件,本文内容如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 global{ usage-countyes; } common{ syncer{rate100M;} } resourcer0{ protocolC; startup{ } disk{ on-io-errordetach; #size1G; } net{ } onnode1{ device/dev/drbd0; disk/dev/sdb; address 192.168 . 149.128 : 7898 ; meta-disk internal ; } onnode2{ device/dev/drbd0; disk/dev/sdb; address 192.168 . 149.129 : 7898 ; meta-disk internal ; } } 配置修改完毕后执行如下命令初始化: 1 drbdadmcreate-mdr0;/etc/init.d/drbdrestart;/etc/init.d/status 如下图: 以上步骤,需要在两台服务器都执行,两台都配置完毕后,在node2从上面执行如下命令:/etc/init.d/drbd status 看到如下信息,表示目前两台都为从,我们需要设置node1为master,命令如下: 1 2 3 drbdadm----overwrite-data-of-peerprimaryall mkfs.ext3/dev/drbd0 mkdir/app;mount/dev/drbd0/app 自此,DRBD配置完毕,我们可以往/app目录写入任何东西,当master出现宕机或者其他故障,手动切换到backup,数据没有任何丢失,相当于两台服务器做网络RAID1。 四、Keepalived配置 1 2 3 wgethttp: //www.keepalived.org/software/keepalived-1.1.15.tar.gz;tar-xzvfkeepalived-1.1.15.tar.gz;cdkeepalived-1.1.15;./configure;make;makeinstall DIR=/usr/local/;cp$DIR/etc/rc.d/init.d/keepalived/etc/rc.d/init.d/;cp$DIR/etc/sysconfig/keepalived/etc/sysconfig/; mkdir-p/etc/keepalived;cp$DIR/sbin/keepalived/usr/sbin/ 两台服务器均安装keepalived,并进行配置,首先在node1(master)上配置,keepalived.conf内容如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 !ConfigurationFile for keepalived global_defs{ router_idLVS_DEVEL } vrrp_scriptcheck_mysql{ script "/data/sh/check_mysql.sh" interval 5 } vrrp_instanceVI_1{ stateMASTER interface eth0 virtual_router_id 52 priority 100 advert_int 1 authentication{ auth_typePASS auth_pass 1111 } virtual_ipaddress{ 192.168 . 149.100 } track_script{ check_mysql } } 然后创建check_mysql.sh检测脚本,内容如下: 1 2 3 4 5 6 7 8 #!/bin/sh A=`ps-Cmysqld--no-header|wc-l` if [$A-eq 0 ];then /bin/umount/app/ drbdadmsecondaryr0 killallkeepalived fi 添加node2(backup)上配置,keepalived.conf内容如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 !ConfigurationFile for keepalived global_defs{ router_idLVS_DEVEL } vrrp_sync_groupVI{ group{ VI_1 } notify_master/data/sh/master.sh notify_backup/data/sh/backup.sh } vrrp_instanceVI_1{ stateBACKUP interface eth0 virtual_router_id 52 priority 90 advert_int 1 authentication{ auth_typePASS auth_pass 1111 } virtual_ipaddress{ 192.168 . 149.100 } } 创建master.sh检测脚本,内容如下: 1 2 3 4 #!/bin/bash drbdadmprimaryr0 /bin/mount/dev/drbd0/app/ /etc/init.d/mysqldstart 创建backup.sh检测脚本,内容如下: 1 2 3 4 #!/bin/bash /etc/init.d/mysqldstop /bin/umount/dev/drbd0 drbdadmsecondaryr0 发生脑裂恢复步骤如下: 1 2 3 4 5 Master执行命令: drbdadmsecondaryr0 drbdadm----discard-my-dataconnectr0 Backup上执行命令: drbdadmconnectr0 本文转自 wgkgood 51CTO博客,原文链接:http://blog.51cto.com/wgkgood/1408056

优秀的个人博客,低调大师

利用Dockerfile构建一个nginx容器

1.从远程仓库中pull centos镜像 docker pull centos 2.查询镜像 docker images 3.下载nginx和pcre到本地目录下 4.编辑Dockerfile文件 #Nginx dockerfile #Version 1.0 #Author: kehaojian #Base images FROM centos #MAINTAINER 维护人 MAINTAINER kehaojian #ADD 添加本地文件到镜像 ADD pcre-8.37.tar.gz /usr/local/src ADD nginx-1.9.3.tar.gz /usr/local/src #RUN 在镜像中执行命令 RUN yum install -y wget gcc_c++ make openssl-devel RUN useradd -s /sbin/nologin -M www #WORKDIR 镜像中切换到目录 WORKDIR /usr/local/src/nginx-1.9.3 RUN yum install -y gcc gcc-c++ RUN ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module --with-http_stub_status_module --with-pcre=/usr/local/src/pcre-8.37 && make && make install RUN echo "daemon off;">>/usr/local/nginx/conf/nginx.conf #配置环境变量 ENV PATH /usr/local/nginx/sbin:$PATH EXPOSE 80 #命令 CMD ["nginx"] 5.执行构造命令 docker build -t nginx-docker:v1 . [root@HA2 src]# docker build -t nginx-docker:v1 . Sending build context to Docker daemon 8.234 MB Step 1 : FROM centos ---> 3fa822599e10 Step 2 : MAINTAINER kehaojian ---> Using cache ---> 7a13a2573c2c Step 3 : ADD pcre-8.37.tar.gz /usr/local/src ---> Using cache ---> 27f018c7c6c2 Step 4 : ADD nginx-1.9.3.tar.gz /usr/local/src ---> Using cache ---> 0ac134999174 Step 5 : RUN yum install -y wget gcc_c++ make openssl-devel ---> Using cache ---> 2caeaffce308 Step 6 : RUN useradd -s /sbin/nologin -M www ---> Using cache ---> 50fad5999287 Step 7 : WORKDIR /usr/local/src/nginx-1.9.3 ---> Using cache ---> c223ad0c0e56 Step 8 : RUN yum install -y gcc gcc-c++ ---> Using cache ---> 535006fabee5 Step 9 : RUN ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module --with-http_stub_status_module --with-pcre=/usr/local/src/pcre-8.37 && make && make install ---> Using cache ---> 2c8bfa5d7162 Step 10 : RUN echo "daemon off;">>/usr/local/nginx/conf/nginx.conf ---> Using cache ---> 3ab469fa6de1 Step 11 : ENV PATH /usr/local/nginx/sbin:$PATH ---> Using cache ---> 399e3d091604 Step 12 : EXPOSE 80 ---> Using cache ---> 0e84b1ddfd98 Step 13 : CMD nginx ---> Using cache ---> 20c4d11561d3 Successfully built 20c4d11561d3 6.查看镜像 docker images 7.启动容器 docker run -it -d -p 8888:80 --name nginx8888 20c4d11561d3 8.查看容器docker ps -l 9.访问http://ha2:8888 本文转自gauyanm 51CTO博客,原文链接:http://blog.51cto.com/gauyanm/2055021,如需转载请自行联系原作者

优秀的个人博客,低调大师

构建SOA 的IT捷径:BEA AquaLogic Service Bus

今天,很多公司都试图采用“服务驱动”的方式来提高敏捷性和响应能力,这不仅表现在与客户和合作伙伴的交互上,也表现在IT 基础架构的设计和创建上。“服务驱动”要求IT 实施面向服务的架构(SOA),将企业应用中的分散功能组合成基于标准、可互操作的“服务”,并快速组合和重用这些服务来满足业务需求。SOA 的中心是服务,而不是应用。通过实施SOA,公司能提高效率,更快地推出服务,并提高敏捷性,以响应不断变化的业务需求。 BEA AquaLogic Service Bus:敏捷的 SOA 基础架构 ESB 必须支持运行在各种应用平台(如遗留栈、.Net 和J2EE 等)上的服务的交互。在SOA中,可以将服务定义为使用者,来访问和使用其他服务(称为提供者)的资源。ESB 必须对服务使用者和提供者隐藏所使用传输协议和消息格式的差别。ESB 必须能够翻译一个服务在“说什么”,另一个服务在“说什么”,使用高性能的互操作标准(如XQuery)在不同服务端点之间实现动态和无缝的转换。 BEA AquaLogic Service Bus 是一个“企业级”的ESB 产品,专门用于面向服务的集成,管理服务交互,并在各种异构的IT 环境之间代理消息。BEA AquaLogic Service Bus 是一种轻量级技术,无状态;高性能的架构提供了一个中间层,可以满足企业SOA 的要求。 BEA AquaLogic Service Bus 由策略驱动,降低了服务客户(即服务使用者)和业务服务(服务提供者)之间的耦合程度,提供一个点,用于安全控制、监控和SLA(服务级别协议)实施。它通过配置(而不是编写代码)来动态实施服务集成关系的更改,允许客户改进服务架构的各个方面:安全,服务位置、可用性和响应性,数据格式,监控,以及传输和通信。 本文转自 牛海彬 51CTO博客,原文链接:http://blog.51cto.com/newhappy/77283,如需转载请自行联系原作者

优秀的个人博客,低调大师

通过Springboot拆分服务构建微服务集

应用背景: 1.基于Spring Boot开发 2.依赖ActiveMQ,Kafka,Redis,Mongodb,MySQL等开源软件 3.内部服务图片服务器,分布式计算平台服务,检索服务,消息推送服务等 拆分原因: 1.(原有的)应用模块之间高度耦合,各个模块都担当了牵一发而动全身的“角色” 2.应用的配置信息分布到依赖个几个服务的配置中,配置信息冗余,对配置的修改改动地方过多 3.应用在依赖的基础服务的时候,没能遵循“依赖倒转原则”,导致基础服务升级,问题修复,功能增加时应用在面对变化,不够灵活 4.应用定制化开发分支与主线决裂,无法满足灵活定制化开发 拆分过程: 整个拆封过程中保持原有业务不变,逐步进行的。 1.先是把依赖基础服务的部分抽取出来,应用对依赖服务的操作全部通过抽象出来的接口进行。然后通过具体实现来完成基础服务的操作。比如:操作图片服务器的操作通过ImageServerClient进行,操作分布式计算平台服务通过PccServerClient进行。 2.梳理应用的配置信息,比如图片服务器配置,数据库配置等,搭建Spring Cloud Config服务(支持git,svn,Local File 读取配置文件)采用Local File的方式来管理配置文件;应用集成Spring Cloud Config Client ,配置信息统一才配置服务中读取。 3.进行应用拆分,将提供Http请求接口的拆分为WebApp,将提供RPC接口的拆分为App。然后这两类分别安装实现的业务功能进行拆分。 拆分的WebApp,App仍然采用Spring Boot框架。 拆分结果: 1.WebApp通过Spring Session + Redis来实现Session共享 2.WebApp,App通过请求配置服务(Spring Cloud Config Server)完成配置文件的读取,解决了拆封原因2的问题 3.拆分步骤1解决拆分原因3中的问题 4.各个独立的应用之间除了webApp要session共享外,其它的通信,数据流向都是通过中间件来完成 5.解决拆分原因4的问题就更加容易了,定制化开发仅需要添加定制的应用即可 访问应用: 1.应用是前后端分离,通过反向代理来完成Http请求到多个WebApp的转发 2.外部系统可以通过Http请求,TCP/IP的方式分别访问WebApp和App 拆分难点: 1.应用的模块划分,这个需要对应用业务流程,数据流向,依赖服务之间的调用关系以及通信协议清楚 2.避免为拆分而拆分 3.团队成员都能够理解拆分的原因,清楚操作的过程,能够想象到期望的结果 一个故事: 某一天女朋友包了两种饺子:大肉葱,韭菜鸡蛋。 我:一起煮 女朋友:说分开煮 我:不嫌麻烦 女朋友:我不吃大肉 我:那煮好,不捞大肉给你就好了 女朋友:那大肉葱煮烂了,咋办!锅里全是肉味 大而全的应用就像是一个锅煮各种饺子,小应用(微服务)就像是一锅煮一类饺子。 本文转自 secondriver 51CTO博客,原文链接:http://blog.51cto.com/aiilive/1845951,如需转载请自行联系原作者

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册