Eclipse使用javaEE开发web项目配置?
首先点击Eclipse右上角的Java EE(默认是在J***a状态下的),转换后左边, 出现Project Explorer,点击菜单栏file下的图标右面的小箭头,就可以新建项目了。
J***a分布式架构可以把所有项目部署到一台机器上吗?
可以,但是不推荐。
分布式的目的是分工合作,提高系统的整体可用性!
***设一个系统S,拆分为s1,s2,s3。如果s1挂了,那可能s1负责的功能无法使用,s2,s3负责的功能还是能使用的。比如2018年双11,淘宝的地址服务挂了,买家无法修改收货地址。但是并不影响下单。
***设s1,s2,s3部署在一台机器上,会降低整体可用性!如果只是单纯的s1,s2,s3挂了,只会影响部分功能,但是如果这台机器挂了,那整个系统就都挂了。
如果s1,s2,s3部署在不同的机器上,那么其中一台机器挂了,也不会导致系统整体不可用。
如果只是自己学习分布式搭建,或开发环境自测简单的业务功能实现是完全可以的。
分布式环境中间的网络节点可以在公网,内网,本机,只要节点间能通信。
在一些业务量还不高的分布式系统线上环境也会有单机多节点的部署情况。
单机多节点部署:
1.不同节点端口不同,如dubbo_provider,tomcat,jeety,undertow等所有容器都可指定固定通信端口。
3.这几年流行的做法:docker+k8s,
优点:应用镜像安装一个pull搞定,***率比虚拟机高n倍,甚至能在别人的镜像仓库找到现有的分布式demo;强烈建议了解一下
我想楼主是想在一台机子上模拟部署一下分布式架构,答案是可以的。
方案一: 开好多台虚拟机,这样就可以当好多台机部署
方案二: 用docket代替方案一的VM,这样***占用可以少很多
方案三: 用minikube在单机模拟k8s集群进行分布式部署,操作和真正的k8s集群基本没区别
当然,单机的cpu和内存要尽量高点
当然可以了,不然我的两个mysql服务主从复制,读写分离,nginx+两个SpringCloud微服务应用怎么部署?
废话不多说,先来看看我的mysql主从***+读写分离怎么搭建在一台机器上的。。
1,windows下载boot2docker软件,安装注册之后,使用boot2docker ssh开启docker服务;
2,拉取mysql镜像,分别以端口3006,3008端口进行两个服务的启动,脚本类似这个:docker run --name mysql1 -p 3308:3306 -e MYSQL_root_PASSWORD=root -d mysql,
3,使用下载boot2docker自带的oracle VM VirtualBox将3008,3006端口暴露,这样两个mysql服务就可以提供使用了;
4,配置主从***+读写分离(自行百度)!
可以看到,我的windows下面的docker镜像有mysql,redis,nginx,zookeeper等等,我运行项目的时候,全部确实都可以运行在我的一台机器上,所有的服务确实是“分布”的;也就是说分布式架构的所有服务可以全部部署到一台服务器上;
我们可以这么做分布式架构,但是计算机不允许。。运行那么多的服务,基本每个服务都要卡成狗了!
分布式系统之所以需要就是因为单机系统成为了高性能,高稳定性,高持续性的瓶颈!
谢邀~
技术上可行,但是架构上不建议。
几种部署方式,第一个不太建议,后两种方案都还可以:
直接部署,不同的软件、中间件占用不同的端口:例如数据库Mysql占用3306端口,多套不同的程序使用Tomcat部署,占用不同的端口,或者使用Spring Boot的话,启动时候指定不同的端口;相同的应用前面挂一个负载均衡,或者直接安装注册中心到这台机器上。其余用到的软件,也一窝蜂的安装在同一台机器上。
虚拟化:使用虚拟化技术,将一台物理机,虚拟成多台虚拟机,然后分别在每个虚拟机中,安装不同的软件、中间件,最终完成部署,彼此相互隔离。
容器技术:比如Docker;和虚拟化类似(详情参考我的另一个回答:《docker容器与虚拟机有什么区别?》),容器技术更轻量级、更容易部署和移植、并且可以弹性伸缩;相同配置的服务器,部署容器的数量会比虚拟机多很多。
主要出于两方面的考虑: