ASP.NET Core分布式项目实战

默认教学计划
1004人加入学习
(32人评价)
价格 ¥398.00
教学计划

特点

1 一组小的服务

2 松散耦合

3 独立部署 独立的进程 无集中式管理

4 服务大小取决于上下文 bounded context

5  轻量级通信

6 基于业务的能力

 

带来的问题

1 分布式的问题

2 问题追踪 测试 部署 监控 分布式事务

3 服务治理

4 开发难度加大:聚合查询

 

[展开全文]

新建一个控制台项目:console

dotnet new console

制作dockerfile文件

FROM microsoft/dotnet

WORKDIR /app

COPY . /app

CMD ["dotnet","run"]

打包镜像

docker build -t liuguojiang/console:dev

docker images

docker run --name console=dev liuguojiang:dev

docker ps -a

docker logs console-dev

 

制作新dockerfile文件

FROM microsoft/dotnet:sdk AS build-env

WORKDIR /code

COPY *.csproj /code

RUN dotnet restore

COPY . /code

RUN dotnet publish -c Release -o out

FROM microsoft/dotnet:runtime

WORKDIR /app

COPY --from=build-env /code/out /app

ENTRYPOINT ["dotnet","console.dll"]

 

docker build -t liuguojiang/console:build

dotnet run --name console-prod liuguojiang/console:prod

 

 

 

 

[展开全文]

 瀑布式开发:严格按照流程,规范化的开发过程,强调组织性,但后期无法轻易改动(涉及面很广)

 

[展开全文]

mkdir docker

cd docker

mkdir mysql

cd mysql/

mkdir config

ls 查看

mkdir db

cd config

vi my.cnf:添加

[mysqld]

user=mysql

 

 

 

[展开全文]

操作步骤:

  1. docker -d -p 3306:3306 name mysql01 mysql/mysql server  --character-set-server=utf8 --collation-server=utf8_general_ci:设置字符集
  2. docker -d -p 3306:3306 -e MYSQL_USER="LIUGUOJIANG" -e MYSQL_PASSWORD="PWD123456" --name mysql01 mysql/mysql server  --character-set-server=utf8 --collation-server=utf8_general_ci:设置用户名密码
  3. docker rm mysql01:上一节课已经创建了一个mysql01的镜像
  4. 重新执行第2步命令
  5. docker ps查看运行镜像
  6. docker logs mysql01
  7. docker exec -it mysql01 bash
  8. mysql -uliuguojiang -p;
  9. use mysql;
  10. exit;
  11. docker logs mysql01:查看寻找root密码
  12. docker -d -p 3306:3306 -e MYSQL_USER="LIUGUOJIANG"   -e MYSQL_PASSWORD="PWD123456" -e MYSQL_ROOT_PASSWORD="pwd123456" --name mysql01 mysql/mysql server  --character-set-server=utf8 --collation-server=utf8_general_ci

 

[展开全文]

操作步骤:

  1. 下载镜像:docker pull mysql/mysql-server
  2. docker run -d -p 3306:3306 --name mysql01 mysql/mysql-server
  3. 查看:docker ps
  4. docker logs mysql01--拷贝密码
  5. docker exec -it mysql01 bash
  6. mysql -u root  -p {password}
  7. use mysql
  8. SET PASSWORD FOR 'root'@'localhost'=PASSWORD('MyNewPassword');
  9. select user,host from user;
  10. CREATE USER 'liuguojiang'@'localhost' IDENTIFIED BY 'pwd23456';
  11. GRANT ALL PRIVILEGES ON *.* TO 'liuguojiang'@'localhost' WITH GRANT OPTION;
  12. CREATE USER 'liuguojiang'@'%' IDENTIFIED BY 'pwd123456';
  13. GRANT ALL ON *.* TO 'liuguojiang'@'%' WITH GRANT OPTION;
  14. SELECT USER,HOST FROM USER
  15. show vriables '%char%';
  16. exit;
  17. cd /etc
  18. cd my.cnf
  19. yun install vim
  20. cd /etc
  21. vim my.cnf
  22. 修改MYSQL默认字符集
    1. [mysql]
    2. character-set-server=utf8
    3. [client]
    4. default-character-set=utf8
    5. [mysql]
    6. default-character-set=utf8
  23. esc,输入wq
  24. mysql --help

 

[展开全文]

在2.1及以上版本中,使用以下镜像,详细内容:

FROM microsoft/dotnet:2.2-sdk as build-env
WORKDIR /code
COPY *.csproj ./
RUN dotnet restore
COPY . ./
RUN dotnet publish -c Releash -o out

FROM microsoft/dotnet:2.2-aspnetcore-runtime 
WORKDIR /app
COPY --from=build-env /code/out ./
EXPOSE 80
ENTRYPOINT ["dotnet","User_API.dll"]

[展开全文]

docker run -p 8001:80(物理机端口:容器端口) -d (全程detach ) --name

 

 

 

nginx

[展开全文]

docker run 

             -p

             -d

             --name

[展开全文]

docker --version    查看当前docker版本

docker ps    查看当前正在运行的容器

docker images 查看本地所有的镜像

docker run 运行一个容器

docker pull 用来拉取一个镜像( https://docw.docker-cn.com/){}到本地

[展开全文]

提示没有MigrageDbContext方法?

[展开全文]

架构设计时,应该时时想到以后的系统可扩展的问题。

[展开全文]

1、在使用Mysql.Data.EntityFramework.Core 的时候有一个错误。

No coercion operator is defined between types 'System.Int16' and 'System.Boolean'.

后来使用 Pomelo.EntityFrameworkCore.MySql 库来解决了这个问题。

 

2、在dotnet 2.1 新建的webapi项目创建的ValuesController默认是 集成BaseController,没有Json方法,修改集成Controller即可

[展开全文]

gitlab 安装

 

[展开全文]

docker compose

version:3

services

db

[展开全文]

容器互联 

link

docker images

 

[展开全文]

授课教师

程序员

课程特色

下载资料(2)
视频(144)
讨论(1)
图文(2)